0

我正在尝试学习如何使用相机拍照。我指的是本教程并尝试实现MakePhotoActivity该类。当我在手机上运行该应用程序时,该应用程序正常启动。理想情况下,单击“MakePhoto”按钮应捕获图像并将其保存到我的 SD 卡中。但是,当我单击“MakePhoto”按钮时,我的应用程序不会执行任何操作。在检查 logcat 时,我error -2147483648在里面。谁能告诉这里发生了什么以及如何解决此错误?

编辑:

这是日志猫:

03-16 13:16:03.608: I/Process(7907): Sending signal. PID: 7907 SIG: 9
03-16 13:16:11.108: D/TextLayoutCache(8052): Using debug level: 0 - Debug Enabled: 0
03-16 13:16:11.148: D/libEGL(8052): loaded /system/lib/egl/libGLES_android.so
03-16 13:16:11.158: D/libEGL(8052): loaded /system/lib/egl/libEGL_adreno200.so
03-16 13:16:11.158: D/libEGL(8052): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
03-16 13:16:11.158: D/libEGL(8052): loaded /system/lib/egl/libGLESv2_adreno200.so
03-16 13:16:11.198: D/OpenGLRenderer(8052): Enabling debug mode 0
03-16 13:16:28.308: D/MakePhotoActivity(8052): Camera found
03-16 13:16:28.498: E/Camera(8052): Error -2147483648

我还尝试在我的 SD 卡中搜索任何图片,但找不到任何图片。

我试图调试程序。这是我得到的:

03-16 14:23:13.949: W/dalvikvm(11426): threadid=1: thread exiting with uncaught exception (group=0x2b542210)

编辑2:

好的。我只是使用e.printStackTrace(); 所以打印出未捕获的异常,logcat 在日志中附加以下内容:

03-16 14:39:09.589: W/System.err(12863): java.lang.NullPointerException
03-16 14:39:09.599: W/System.err(12863):    at edu.gatech.makephotoactivity.MakePhotoActivity.onClick(MakePhotoActivity.java:43)
03-16 14:39:09.599: W/System.err(12863):    at java.lang.reflect.Method.invokeNative(Native Method)
03-16 14:39:09.599: W/System.err(12863):    at java.lang.reflect.Method.invoke(Method.java:511)
03-16 14:39:09.599: W/System.err(12863):    at android.view.View$1.onClick(View.java:3058)
03-16 14:39:09.599: W/System.err(12863):    at android.view.View.performClick(View.java:3534)
03-16 14:39:09.599: W/System.err(12863):    at android.view.View$PerformClick.run(View.java:14263)
03-16 14:39:09.599: W/System.err(12863):    at android.os.Handler.handleCallback(Handler.java:605)
03-16 14:39:09.599: W/System.err(12863):    at android.os.Handler.dispatchMessage(Handler.java:92)
03-16 14:39:09.609: W/System.err(12863):    at android.os.Looper.loop(Looper.java:137)
03-16 14:39:09.609: W/System.err(12863):    at android.app.ActivityThread.main(ActivityThread.java:4441)
03-16 14:39:09.609: W/System.err(12863):    at java.lang.reflect.Method.invokeNative(Native Method)
03-16 14:39:09.609: W/System.err(12863):    at java.lang.reflect.Method.invoke(Method.java:511)
03-16 14:39:09.609: W/System.err(12863):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-16 14:39:09.609: W/System.err(12863):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-16 14:39:09.609: W/System.err(12863):    at dalvik.system.NativeStart.main(Native Method)

所以,我得到一个NullPointerException. 我的猜测是该getDir()函数没有返回任何内容。但是,我不确定。有什么建议为什么我可能会遇到异常以及如何摆脱它?

编辑 3:

现在,我正在尝试再次调试程序。我从类文件编辑器收到一条消息说Source Not Found. The source attachment does not contain source for ClassLoader.class。我可以把细节放在这里,但它会变得太长。显然我的代码找不到PhotoHandler类。如何让 Eclipse 在同一个包中找到类?

4

1 回答 1

0

我真的不明白为什么我会收到这个错误以及如何解决它。我也不明白为什么 eclipsePhotoHandler在运行时无法找到课程。但是,@JoxTraex 使用隐式相机应用程序意图的建议很有用。所以我删除了单独的函数并在我的方法onClick中添加了以下代码:onCreate

findViewById(R.id.imageButton1).setOnClickListener(new OnClickListener() {
  public void onClick(View view) {    

      try {
          Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          startActivityForResult(i, RET_CODE);
      }    
      catch(Exception e){
          e.printStackTrace();
      }
  }
});

我还在MakePhotoActivity课堂上添加了以下方法

protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); 如果(结果代码!= RESULT_OK)返回;

  switch(requestCode){
  case RET_CODE:
      Uri u = data.getData();      *//This gives the URI where the image is saved*
      /*
        FETCH THE PHOTO USING THE URI AND DO WHATEVER OPERATION YOU WANT WITH THE PHOTO (IN MY CASE SENDING IT OVER THE NETWORK)
      */
      break;
  default:
      break;
  }

}

并对 XML 文件进行了适当的更改。

虽然,这不是我问题的答案,但我只是发布它,以便它可能对某人有用。

于 2013-03-17T04:57:42.550 回答