2016-01-24 2 views
0

Я пишу приложение, в котором нажата кнопка, он должен открыть камеру. Но мои приложения продолжают рушиться на моем Nexus 5, работающем Android 6.01.
Вот мой прослушиватель onCLick.Сбой приложения для Android при открытии содержимого камеры

public void capturePhoto(View view) { 
    Log.d(TAG, "Capture button pressed."); 
    Intent cameraApplicationIntent = new Intent(); 
    cameraApplicationIntent.setAction(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

    File photoFile = null; 
    try { 
     photoFile = createImageFile(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    cameraApplicationIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); 
    startActivityForResult(cameraApplicationIntent, CAMERA_INTENT_REQUEST); 
} 

У меня есть это в манифесте:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.CAMERA" /> 

Вот мой StackTrace и линия 161 cameraApplicationIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));:

01-24 01:42:50.859 26744-26744/kiam.cameraintentpractice D/ImageAcquisition﹕ Capture button pressed. 
01-24 01:42:50.873 26744-26744/kiam.cameraintentpractice W/System.err﹕ java.io.IOException: open failed: EACCES (Permission denied) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at java.io.File.createNewFile(File.java:939) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at java.io.File.createTempFile(File.java:1004) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at kiam.cameraintentpractice.ImageAcquisition.createImageFile(ImageAcquisition.java:197) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at kiam.cameraintentpractice.ImageAcquisition.capturePhoto(ImageAcquisition.java:157) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.view.View$DeclaredOnClickListener.onClick(View.java:4453) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.view.View.performClick(View.java:5204) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.view.View$PerformClick.run(View.java:21153) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.os.Looper.loop(Looper.java:148) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5417) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at libcore.io.Posix.open(Native Method) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ at java.io.File.createNewFile(File.java:932) 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice W/System.err﹕ ... 14 more 
01-24 01:42:50.874 26744-26744/kiam.cameraintentpractice D/AndroidRuntime﹕ Shutting down VM 
01-24 01:42:50.876 26744-26744/kiam.cameraintentpractice E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: kiam.cameraintentpractice, PID: 26744 
    java.lang.IllegalStateException: Could not execute method for android:onClick 
      at android.view.View$DeclaredOnClickListener.onClick(View.java:4458) 
      at android.view.View.performClick(View.java:5204) 
      at android.view.View$PerformClick.run(View.java:21153) 
      at android.os.Handler.handleCallback(Handler.java:739) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:148) 
      at android.app.ActivityThread.main(ActivityThread.java:5417) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Method.invoke(Native Method) 
      at android.view.View$DeclaredOnClickListener.onClick(View.java:4453) 
            at android.view.View.performClick(View.java:5204) 
            at android.view.View$PerformClick.run(View.java:21153) 
            at android.os.Handler.handleCallback(Handler.java:739) 
            at android.os.Handler.dispatchMessage(Handler.java:95) 
            at android.os.Looper.loop(Looper.java:148) 
            at android.app.ActivityThread.main(ActivityThread.java:5417) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.NullPointerException: file 
      at android.net.Uri.fromFile(Uri.java:452) 
      at kiam.cameraintentpractice.ImageAcquisition.capturePhoto(ImageAcquisition.java:161) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at android.view.View$DeclaredOnClickListener.onClick(View.java:4453) 
            at android.view.View.performClick(View.java:5204) 
            at android.view.View$PerformClick.run(View.java:21153) 
            at android.os.Handler.handleCallback(Handler.java:739) 
            at android.os.Handler.dispatchMessage(Handler.java:95) 
            at android.os.Looper.loop(Looper.java:148) 
            at android.app.ActivityThread.main(ActivityThread.java:5417) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+1

StackTrace пожалуйста. и обратите внимание, что вам требуется разрешение времени выполнения от пользователя на marshmallow. – Raghunandan

+1

Опубликуйте свой журнал cat. –

+0

Используйте этот lib для android 6.0 https://github.com/tbruyelle/RxPermissions – PeDuCKA

ответ

Смежные вопросы