###問題点・わからないこと
Androidでそれぞれの端末についているカメラアプリをIntentを使って起動し、撮影した画像をFileProviderで共有しようとしました。
カメラで写真を撮影するところまではうまくいっていると思うのですが、画像の保存や読み込みの処理がうまくいっていないように思います。画像をBitmapとして読み込んで使おうとするとNullPointerExceptionが発生します。
###コード
Activityは二つあります。IndexActivityが呼ばれて、ボタンが押されるとIntentを投げてカメラを起動、撮影後に(問題の)FileProviderでUriを指定して保存します。その後、FaceDetectActivityが呼ばれ、保存したであろう画像を(問題の)FileProvderで読み込み、Bitmapとしてデコード、利用しようとしています。文字数の都合上Githubのリンクになってしまいました。
おそらくFaceDetectActivityの71行目がヌルポの原因だと思いますが、FaceDetectActivityへ移行する以前にBitmapが保存されていないようなので、おそらくFileProviderのpathがおかしいと思います。
InputStream stream = getContentResolver().openInputStream(bitUri);
###Logcat
NullPointerExceptionがでた時のLogcatです。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lifeistech.android.myapplication, PID: 21351
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lifeistech.android.myapplication/com.lifeistech.android.SmileCounter.FaceDetectActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at com.lifeistech.android.SmileCounter.FaceDetectActivity.onCreate(FaceDetectActivity.java:84)
at android.app.Activity.performCreate(Activity.java:6672)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
###環境について
MacOS Sierra 10.12.6
Android Studio 2.3.3
Build #AI-162.4069837, built on June 6, 2017
JRE: 1.8.0_112-release-b06 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
以上です。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー