【问题标题】:Android Studio App Crash, Related To OnClick and startActivityForResultAndroid Studio 应用崩溃,与 OnClick 和 startActivityForResult 相关
【发布时间】:2016-06-25 04:24:18
【问题描述】:

我现在正在学习如何在 Android Studio 上制作一个简单的相机应用。当我单击“相机”按钮时,应用程序崩溃。我似乎无法确定导致应用程序崩溃的原因。在 logcat 中,它指出“startActivityForResult”可能是原因……但对我来说看起来很正常。

我确保相机按钮 ID 与 Java 文件匹配。非常感谢任何帮助!

到目前为止,这是我的代码。

Main_Activity.java:

public class MainActivity extends AppCompatActivity {

Button cam_button;
ImageView imageView;
static final int CAMERA_REQUEST_CODE = 1;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    cam_button = (Button) findViewById(R.id.cam_button);
    imageView = (ImageView) findViewById(R.id.imageV);

    cam_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File file = getFile();
            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
            startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
        }
    });

}


private File getFile() {
    File folder = new File("sdcard/camera_app");
    if(folder.exists())
        folder.mkdir();

    File imageFile = new File("cameraImage.jpg");

    return imageFile;
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    String path = "sdcard/camera_app/cameraImage.jpg";
    imageView.setImageDrawable(Drawable.createFromPath(path));
}}

activity_main.xml:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="camera"
    android:id="@+id/cam_button"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageV"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

这是我从 logcat 中复制的:

06-24 21:30:45.769 21481-21481/com.sugarcoder.cameraapp E/AndroidRuntime: 致命异常: main 进程:com.sugarcoder.cameraapp,PID:21481 java.lang.SecurityException:权限拒绝:开始意图{ 行动=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.motorola.camera/.Camera 剪辑={text/uri-list U:file:///cameraImage.jpg}(有附加功能)}来自 ProcessRecord{b5b85f2 21481:com.sugarcoder.cameraapp/u0a121} (pid=21481, uid=10121) 与 撤销权限 android.permission.CAMERA 在 android.os.Parcel.readException(Parcel.java:1620) 在 android.os.Parcel.readException(Parcel.java:1573) 在 android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2696) 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1574) 在 android.app.Activity.startActivityForResult(Activity.java:3921) 在 android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) 在 android.app.Activity.startActivityForResult(Activity.java:3881) 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871) 在 com.sugarcoder.cameraapp.MainActivity$1.onClick(MainActivity.java:40) 在 android.view.View.performClick(View.java:5201) 在 android.view.View$PerformClick.run(View.java:21163) 在 android.os.Handler.handleCallback(Handler.java:746) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5443) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

【问题讨论】:

  • 发布您的崩溃日志
  • 我包含了我在 logcat 中看到的内容。
  • 使用棉花糖 6.0 ??
  • 我想这就是你要求的:stackoverflow.com/a/35574084/1867608
  • 只是为了确认一下,您接受许可了吗?

标签: java xml android-studio camera


【解决方案1】:

解决了!我发现问题是我必须实际进入手机上应用程序的应用程序信息,然后打开权限。感谢您的所有帮助,伙计们! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2012-12-17
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多