2012-07-27 2 views
2

사진을 찍는 버튼을 누르는 Android 앱을 만들려고합니다. 내 코드는 경고 나 오류없이 깨끗하지만, 에뮬레이터에서 실행할 때 앱의 사진 버튼을 누르면 앱이 멈춘 것으로 표시됩니다. 로그 파일에서 설명을 확인하면 나에게 다음과 같이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); 
    } 

} 

답변

0

는 방법을

private static final int TAKE_PHOTO_REQUEST = 100; 

를 호출하고 요청 코드에 대한

dispatchTakePhotoIntent(TAKE_PHOTO_REQUEST); 

로하고 방법을 테스트 내부의 메소드를 호출 클래스의 상수 생성 그리고 문제는 이미지가 r 인 뷰를 전달하여 메서드를 호출한다는 것입니다. 너가 나르고 싶 는다 활동보다는 오히려 endered/표시. 따라서 dispatchTakePhotoIntent (int)을 정의 했으므로 컴파일러에서 dispatchTakePhotoIntent (보기) 메서드의 호출을 찾지 못했습니다.

eclipse에서 개발중인 경우 코드에서 오류가 발생해야합니다 (오류가있는 행의 적색 간 부호).

1

오류는 말한다 : 방법 dispatchTakePhotoIntent를 찾을 수 없습니다 (보기)

당신에게 인수로보기 객체 호출 dispatchTakePhotoIntent 귀하의 코드에서 다음과 같이 정의했습니다 :

public void dispatchTakePhotoIntent(int actionCode) 

정수를 인수로 취합니다.

코드 내부에서 메서드를 호출하는 방식에 문제가 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 문제가 무엇인지 설명하고 있지만, 안드로이드에 익숙하지 않으므로 dispatchTakePhotoIntent (int actionCode) 대신보기 대신 정수를 보내는 방법을 설명해 주시겠습니까? 미리 감사드립니다. –

+0

안녕하세요 저는 온라인에 접속했으나 사용자가 로그 아웃했으나 로그 아웃했습니다. 아직 온라인 상태입니다. –

+0

이 답변을 실제로 가장 직접적인 것으로 봅니다. 나는 동일한 문제를 가지고 그것이 내 View 요소가 매개 변수가없는 함수에 전달되지 않아서 실현되었습니다. Upvoted. – dudewad

0

방법 dispatchTakePhotoIntent android.widget.Button이

그것은 당신에게보기를 보낼 수 있습니다 보인다 뷰 클래스에 온 클릭 처리기에 대한 활동 클래스 com.example.mydressingroom.MainActivity에서 (보기)을 찾을 수 없습니다 메소드 속성에서 정의한대로 정수를 전송하는 대신 메소드를 호출합니다.

public void dispatchTakePhotoIntent(int actionCode) { 
    if (actionCode == 100) { 
     Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(takePhotoIntent, actionCode); 
    } 
    } 

:

+0

답장을 보내 주셔서 감사합니다. 문제가 무엇인지 설명하지만, 안드로이드에 익숙하지 않으므로 dispatchTakePhotoIntent (int actionCode) 대신보기 대신 정수를 보내는 방법을 설명해 주시겠습니까? 미리 감사드립니다. –

관련 문제