0
に仮想メソッド「はjava.lang.String型android.net.Uri.getSchemeを()」を呼び出すしようとすると、私はギャラリーから画像をロードし、Android Image Cropper驚くべき例外:nullのオブジェクト参照
マイonActivityResult
を使用して、それをトリミングしていますメソッドコード
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == CHOOSE_IMAGE) {
CropImage.activity (data.getData ())
.setGuidelines (CropImageView.Guidelines.ON)
.start (this);
} else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
Uri imageUri = getPickImageResultUri (data);
// For API >= 23 we need to check specifically that we have permissions to read external storage,
// but we don't know if we need to for the URI so the simplest is to try open the stream and see if we get error.
boolean requirePermissions = false;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
checkSelfPermission (Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &&
isUriRequiresPermissions (imageUri)) {
// request permissions and handle the result in onRequestPermissionsResult()
requirePermissions = true;
mCropImageUri = imageUri;
requestPermissions (new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0);
}
if (!requirePermissions) {
}
mCropImageUri = imageUri;
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver() , mCropImageUri);
mCropImageView.setImageBitmap (bitmap);
} catch (IOException e) {
e.printStackTrace ();
}
// mImageLoader.displayImage (String.valueOf (mCropImageUri),mUiCircularImage,options);
}
}
}
すべてが素晴らしいです。
resultCode
はOKです。
requestCode
で結構です
Data
がnullでない
ImageUri
file:///storage/emulated/0/Android/data/com.hey.heypickup/cache/pickImageResult.jpeg
が、私は例外を取得するコード
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver() , mCropImageUri)
の下に使用するビットマップにURIの上に変換したいとき
FATAL EXCEPTION: main
Process: com.hey.heypickup, PID: 21994
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=203, result=-1, data=Intent { (has extras) }} to activity {com.hey.heypickup/com.hey.heypickup.Activities.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3790)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3833)
at android.app.ActivityThread.access$1700(ActivityThread.java:152)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5538)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
at android.content.ContentResolver.openInputStream(ContentResolver.java:641)
at android.provider.MediaStore$Images$Media.getBitmap(MediaStore.java:849)
at com.hey.heypickup.Activities.MainActivity.onActivityResult(MainActivity.java:128)
at android.app.Activity.dispatchActivityResult(Activity.java:6238)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3786)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3833)
at android.app.ActivityThread.access$1700(ActivityThread.java:152)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5538)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
ので、それをthatsの...
の可能性のある重複した[アンドロイド:カメラのテントを使用しているアプリケーションはonActivityResultにクラッシュ](HTTPこのテストは
false
であれば特に、あなたはそれに値を代入し、あなたの問題のコードを持っていません://stackoverflow.com/questions/34504717/android-app-crashes-on-onactivityresult-using-camera-intent) –
@juan Cruz私の場合は何もnullでギャラリーから画像を取得しています –
あなたは更新できますかgetPickImageResultUri()およびisUriRequiresPermissions()メソッドのコード? – rogerwar