मेरे एप्लिकेशन में उपयोगकर्ता गैलरी से अपलोड करें और अपलोड करें। कई उपकरणों पर मेरा कोड सही काम करता है लेकिन नए उपकरणों (आदि: सैमसंग एस 5, एलजी जी 2, सैमसंग एस 4) पर फोटो चुनते समय एप्लिकेशन दुर्घटनाग्रस्त हो जाता है। मैंने Google Play Store पर एप्लिकेशन अपलोड किया और इन डिवाइसों को डाउनलोड किया, फिर ऐप क्रैश होने पर Google Play पर रिपोर्ट भेज दी। यह मेरी चुनिंदा तस्वीर है और कोड का आकार बदलता है।नए डिवाइस पर फोटो चुनते समय एंड्रॉइड एप्लिकेशन क्रैश
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);
public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleHeight, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
return resizedBitmap; }
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK) {
//Bitmap photo = (Bitmap) data.getData().getPath();
Uri selectedImageUri = data.getData();
imagepath = getPath(selectedImageUri);
Bitmap myBitmap = getResizedBitmap(BitmapFactory.decodeFile(imagepath),200,200);
try {
ExifInterface exif = new ExifInterface(imagepath);
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
Log.d("EXIF", "Exif: " + orientation);
resimyon=Integer.toString(orientation);
Matrix matrix = new Matrix();
if (orientation == 6) {
matrix.postRotate(90);
}
else if (orientation == 3) {
matrix.postRotate(180);
}
else if (orientation == 8) {
matrix.postRotate(270);
}
myBitmap = Bitmap.createBitmap(myBitmap, 0, 0, myBitmap.getWidth(), myBitmap.getHeight(), matrix, true); // rotating bitmap
}
catch (Exception e) {
}
imageview.setImageBitmap(myBitmap);
messageText.setText("Yüklenecek dosya:" +imagepath);
uploadButton.setEnabled(true);
}
ये रिपोर्ट सैमसंग एस 5 और एलजी जी 2 से आई हैं।
SAMSUNG S5
java.lang.SecurityException
konum: android.os.Parcel.readException
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/images/media/1909 (has extras) }} to activity {com.turk.bakistik/com.turk.bakistik.Profilresimyukle}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/1909 from pid=29038, uid=10236 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.app.ActivityThread.deliverResults(ActivityThread.java:3663)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3706)
at android.app.ActivityThread.access$1400(ActivityThread.java:173)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5579)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/1909 from pid=29038, uid=10236 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1465)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:413)
at android.content.ContentResolver.query(ContentResolver.java:464)
at android.content.ContentResolver.query(ContentResolver.java:407)
at android.app.Activity.managedQuery(Activity.java:1898)
at com.turk.bakistik.Profilresimyukle.getPath(Profilresimyukle.java:209)
at com.turk.bakistik.Profilresimyukle.onActivityResult(Profilresimyukle.java:173)
at android.app.Activity.dispatchActivityResult(Activity.java:5643)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3659)
... 11 more
LG G2
java.lang.NullPointerException
konum: com.turk.bakistik.Profilresimyukle.getResizedBitmap
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:41 flg=0x1 }} to activity {com.turk.bakistik/com.turk.bakistik.Profilresimyukle}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3382)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3425)
at android.app.ActivityThread.access$1300(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1248)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.turk.bakistik.Profilresimyukle.getResizedBitmap(Profilresimyukle.java:123)
at com.turk.bakistik.Profilresimyukle.onActivityResult(Profilresimyukle.java:175)
at android.app.Activity.dispatchActivityResult(Activity.java:5467)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3378)
... 11 more
मैं इस समस्या का समाधान कैसे कर सकते हैं?
मेनफेस्ट में जोड़ा गया android.permission.READ_EXTERNAL_STORAGE –
मुझे याद है कि मुझे पहले इस समस्या का सामना करना पड़ा। यह अलग-अलग, अपरिचित यूआरआई के कारण हुआ था जो ऐप द्वारा लौटाया गया है (जैसा कि आपके स्टैक ट्रेस 'डेटा = ...' में दिखाया गया है। सैमसंग एस 5 के लिए: [यह सवाल] (http://stackoverflow.com/questions/20028319/how-to-convert-content-media-external-images-media-y-to-file-storage-sdc)। एलजी जी 2 के लिए: [यह सवाल] (http://stackoverflow.com/questions/19834842/android-gallery-on-kitkat-returns- अलग-uri-for-intent-action-get-content) –