2012-04-20 4 views
1

これはJavaとAndroidの新しい機能です。私は必要な機能の1つが正しい名前で写真を撮ることができることをアンドロイドにプログラムを開発しています。Android - メインクラス以外では機能しません

public void tirarFoto(String arquivo) 
{ 
    Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri uriSavedImage=Uri.fromFile(new File(arquivo)); 
    camera.putExtra("output", uriSavedImage); 
    startActivityForResult(camera, 1); 

}  

、それが正常に動作します:

私のメインクラスはので、私はその中に次のコードを作っAmplaCoordenadasActivity

です。

しかし、別のクラスに入れて呼び出しようとすると、多くの例外がスローされます。 クラス:

package ampla.giesta.coordenadas; 
import java.io.File; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 


public class Photo extends Activity{ 

public void tirarFoto(String arquivo){ 
    Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri uriSavedImage=Uri.fromFile(new File(arquivo)); 
    camera.putExtra("output", uriSavedImage); 
    startActivityForResult(camera, 1); 

} 

} 

そして、私がメインクラス

public void Camera(){ 
     Photo camera = new Photo(); 
     camera.tirarFoto("/sdcard/x.jpg"); 

} 

で書い誰が助けることはできますか?

+0

エラーログを投稿してください。 – Sam

+0

私はあなたが 'アクティビティ'クラス '写真'を拡張すべきではないと思います。そして 'Camera()'メソッドをどう呼んでいますか? – amp

+0

04-21 01:31:53.152:W/dalvikvm(351):threadid = 1:キャッチされない例外(グループ= 0x40015560)でスレッドが終了する 04-21 01:31:53.182:E/AndroidRuntime(351):FATAL EXCEPTION :メイン 04-21 01:31:53.182:E/AndroidRuntime(351):java.lang.IllegalStateException:アクティビティのメソッドを実行できませんでした – giesta

答えて

0

あなたのAndroidマニフェストに新しいアクティビティを含める必要があります。

ここでそれを読むまで

http://developer.android.com/guide/topics/manifest/manifest-intro.html

あなたは、Androidマニフェストに設定する必要があります許可に良いイントロだこと。マニフェストは、アプリケーションが呼び出すことができる他のアプリケーションの機能を制御し、マニフェストでサービスとレシーバを宣言し、マニフェストでアプリケーションの必要性を宣言する必要がある特別な権限と、主アプリ以外の追加アクティビティを宣言する必要がありますアクティビティもここで宣言する必要があります。

マニフェストでのアクティビティのインテントフィルタも管理します。

試して、あなたのManifest.xmlファイルに

<activity android:name=".Photo" android:label="@string/app_name" /> 

を追加

関連する問題