Android App - そのようなメソッド例外なし
-
12-12-2019 - |
質問
写真を撮るボタンを押すことを含むAndroidアプリを作成しようとしています。私のコードは警告やエラーなしではきれいですが、エミュレータで実行すると、アプリの写真ボタンを押すとすぐに、アプリが停止したと表示されます。次の
あらゆる助けが理解されるでしょう。事前にありがとうございました。
07-27 20:44:11.676: E/AndroidRuntime(453): FATAL EXCEPTION: main
07-27 20:44:11.676: E/AndroidRuntime(453): java.lang.IllegalStateException: Could not find a method dispatchTakePhotoIntent(View) in the activity class com.example.mydressingroom.MainActivity for onClick handler on view class android.widget.Button
07-27 20:44:11.676: E/AndroidRuntime(453): at android.view.View$1.onClick(View.java:3026)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.view.View.performClick(View.java:3480)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.view.View$PerformClick.run(View.java:13983)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.os.Handler.handleCallback(Handler.java:605)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.os.Handler.dispatchMessage(Handler.java:92)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.os.Looper.loop(Looper.java:137)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.app.ActivityThread.main(ActivityThread.java:4340)
07-27 20:44:11.676: E/AndroidRuntime(453): at java.lang.reflect.Method.invokeNative(Native Method)
07-27 20:44:11.676: E/AndroidRuntime(453): at java.lang.reflect.Method.invoke(Method.java:511)
07-27 20:44:11.676: E/AndroidRuntime(453): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-27 20:44:11.676: E/AndroidRuntime(453): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-27 20:44:11.676: E/AndroidRuntime(453): at dalvik.system.NativeStart.main(Native Method)
07-27 20:44:11.676: E/AndroidRuntime(453): Caused by: java.lang.NoSuchMethodException: dispatchTakePhotoIntent [class android.view.View]
07-27 20:44:11.676: E/AndroidRuntime(453): at java.lang.Class.getConstructorOrMethod(Class.java:460)
07-27 20:44:11.676: E/AndroidRuntime(453): at java.lang.Class.getMethod(Class.java:915)
07-27 20:44:11.676: E/AndroidRuntime(453): at android.view.View$1.onClick(View.java:3019)
07-27 20:44:11.676: E/AndroidRuntime(453): ... 11 more
.
これは私のコード
ですimport android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user clicks the Photo button */
public void dispatchTakePhotoIntent(int actionCode) {
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePhotoIntent, actionCode);
}
}
. 解決
メソッド
を呼び出すクラスに定数を作成します。 private static final int TAKE_PHOTO_REQUEST = 100;
.
とメソッドを
に呼び出す dispatchTakePhotoIntent(TAKE_PHOTO_REQUEST);
.
およびリクエストコードのメソッドテスト内:
public void dispatchTakePhotoIntent(int actionCode) {
if (actionCode == 100) {
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePhotoIntent, actionCode);
}
}
.
と問題は、それにそれに渡されたアクションではなく画像がレンダリング/表示されているビューを渡してメソッドを呼び出していることです。そのため、コンパイラは、 dispatchtakephotointent(int)を定義してから、コード内で見つからなかったタイプの方法への呼び出しを見つけました。
Eclipseで開発している場合は、コード(エラーがある行の赤十字)にエラーが発生している必要があります。
他のヒント
エラーは言う:メソッドを見つけることができませんでした dispatchtakephotointent( view )
あなたはあなたが定義したあなたのコードで、ビューオブジェクトを引数として呼び出したDispatchTakePhotointentを呼び出します。
public void dispatchTakePhotoIntent(int actionCode)
.
引数として整数を取ります。
あなたがあなたのコード内であなたのメソッドを呼び出している方法に問題があります。
メソッドを見つけることができませんでした dispatchtakephotointent(View)がアクティビティクラスcom.example.MydressingRoomsingroom.manactivity for ViewクラスAndroid.widget.button
メソッド属性で定義したときに整数を送信するのではなく、メソッドのビューを送信している可能性があるようです。