Android 从存储在字符串数组中的Uri在imageButton上设置ImageBimap

Android 从存储在字符串数组中的Uri在imageButton上设置ImageBimap,android,Android,代码: imagearray是字符串的数组 ParcelFileDescriptor fd; Uri imageUri2=Uri.parse(imagearray[1]); try { fd = getContentResolver().openFileDescriptor(imageUri2, "r"); } catch (FileNotFoundException e) {

代码: imagearray是字符串的数组

          ParcelFileDescriptor fd;
         Uri imageUri2=Uri.parse(imagearray[1]);

        try {
            fd = getContentResolver().openFileDescriptor(imageUri2, "r");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          Bitmap bmp2 = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
          Bitmap resized2 = Bitmap.createScaledBitmap(bmp2, 100, 100, true);
           Bitmap conv_bm2 = ImageCropScale.getRoundedRectBitmap(resized2, 100);

          ib2.setImageBitmap(conv_bm2);
LogCat:应用程序的名称

          ParcelFileDescriptor fd;
         Uri imageUri2=Uri.parse(imagearray[1]);

        try {
            fd = getContentResolver().openFileDescriptor(imageUri2, "r");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          Bitmap bmp2 = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
          Bitmap resized2 = Bitmap.createScaledBitmap(bmp2, 100, 100, true);
           Bitmap conv_bm2 = ImageCropScale.getRoundedRectBitmap(resized2, 100);

          ib2.setImageBitmap(conv_bm2);
try{ 07-15 17:58:26.121: I/Process(9506): Sending signal. PID: 9506 SIG: 9
07-15 17:59:52.062: D/AndroidRuntime(9905): Shutting down VM
07-15 17:59:52.062: W/dalvikvm(9905): threadid=1: thread exiting with uncaught exception (group=0x41664d40)
07-15 17:59:52.069: E/AndroidRuntime(9905): FATAL EXCEPTION: main
07-15 17:59:52.069: E/AndroidRuntime(9905): Process: com.example.withimage, PID: 9905
07-15 17:59:52.069: E/AndroidRuntime(9905): java.lang.RuntimeException: Unable to start activity  

ComponentInfo{com.example.withimage/com.example.withimage.PictureChange}: java.lang.SecurityException:   

Permission Denial: reading com.android.providers.media.MediaProvider uri    

content://media/external/images/media/4534 from pid=9905, uid=10103 requires  

android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
07-15 17:59:52.069: E/AndroidRuntime(9905):     at   
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at   
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.app.ActivityThread.access$800(ActivityThread.java:139)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at android.os.Looper.loop(Looper.java:136)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at android.app.ActivityThread.main(ActivityThread.java:5086)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at java.lang.reflect.Method.invokeNative(Native Method)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at java.lang.reflect.Method.invoke(Method.java:515)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at dalvik.system.NativeStart.main(Native Method)
07-15 17:59:52.069: E/AndroidRuntime(9905): Caused by: java.lang.SecurityException: Permission Denial: reading 
com.android.providers.media.MediaProvider uri content://media/external/images/media/4534 from pid=9905, 
uid=10103 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
07-15 17:59:52.069: E/AndroidRuntime(9905):     at android.os.Parcel.readException(Parcel.java:1465)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:682)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1063)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:904)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.content.ContentResolver.openFileDescriptor(ContentResolver.java:761)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.content.ContentResolver.openFileDescriptor(ContentResolver.java:716)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
com.example.withimage.PictureChange.onCreate(PictureChange.java:82)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at android.app.Activity.performCreate(Activity.java:5248)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
07-15 17:59:52.069: E/AndroidRuntime(9905):     at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
07-15 17:59:52.069: E/AndroidRuntime(9905):     ... 11 more
07-15 17:59:54.341: I/Process(9905): Sending signal. PID: 9905 SIG: 9 
新LogCat:应用程序的 对于某些图像,它工作得很好;对于其他图像,它只是停止工作

          ParcelFileDescriptor fd;
         Uri imageUri2=Uri.parse(imagearray[1]);

        try {
            fd = getContentResolver().openFileDescriptor(imageUri2, "r");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          Bitmap bmp2 = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
          Bitmap resized2 = Bitmap.createScaledBitmap(bmp2, 100, 100, true);
           Bitmap conv_bm2 = ImageCropScale.getRoundedRectBitmap(resized2, 100);

          ib2.setImageBitmap(conv_bm2);
/*try(07-15 19:11:43.037: I/Adreno-EGL(24501): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: 
AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018_msm8610_LNX.LA.3.5.1_RB1__release_AU ()
07-15 19:11:43.037: I/Adreno-EGL(24501): OpenGL ES Shader Compiler Version: E031.24.00.08
07-15 19:11:43.037: I/Adreno-EGL(24501): Build Date: 03/07/14 Fri
07-15 19:11:43.037: I/Adreno-EGL(24501): Local Branch: 
07-15 19:11:43.037: I/Adreno-EGL(24501): Remote Branch: quic/LNX.LA.3.5.1_RB1.1
07-15 19:11:43.037: I/Adreno-EGL(24501): Local Patches: NONE
07-15 19:11:43.037: I/Adreno-EGL(24501): Reconstruct Branch: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018 
+ f2fd134 +  NOTHING
07-15 19:11:43.065: D/OpenGLRenderer(24501): Enabling debug mode 0
07-15 19:11:51.805: D/dalvikvm(24501): GC_FOR_ALLOC freed 115K, 72% free 3180K/11120K, paused 12ms, total 13ms
07-15 19:11:51.843: I/dalvikvm-heap(24501): Grow heap (frag case) to 19.623MB for 15095824-byte allocation
07-15 19:11:52.014: D/dalvikvm(24501): GC_FOR_ALLOC freed 14K, 31% free 17989K/25864K, paused 12ms, total 12ms
07-15 19:11:52.047: I/dalvikvm-heap(24501): Grow heap (frag case) to 34.084MB for 15095824-byte allocation
07-15 19:11:52.211: D/dalvikvm(24501): GC_FOR_ALLOC freed 1K, 20% free 32810K/40608K, paused 12ms, total 14ms
07-15 19:11:52.287: D/dalvikvm(24501): GC_FOR_ALLOC freed 1K, 11% free 36489K/40608K, paused 12ms, total 12ms
07-15 19:11:52.315: I/dalvikvm-heap(24501): Grow heap (frag case) to 52.150MB for 15095824-byte allocation
07-15 19:11:52.490: D/dalvikvm(24501): GC_FOR_ALLOC freed 1K, 8% free 51310K/55352K, paused 12ms, total 12ms
07-15 19:11:52.520: I/dalvikvm-heap(24501): Grow heap (frag case) to 66.624MB for 15095824-byte allocation
07-15 19:11:52.687: D/dalvikvm(24501): GC_FOR_ALLOC freed 1K, 6% free 66131K/70096K, paused 13ms, total 13ms
07-15 19:11:52.716: I/dalvikvm-heap(24501): Grow heap (frag case) to 81.097MB for 15095824-byte allocation
07-15 19:11:52.911: D/dalvikvm(24501): GC_FOR_ALLOC freed 1K, 5% free 80952K/84840K, paused 14ms, total 14ms
07-15 19:11:52.911: I/dalvikvm-heap(24501): Forcing collection of SoftReferences for 15095824-byte allocation
07-15 19:11:52.933: D/dalvikvm(24501): GC_BEFORE_OOM freed 9K, 5% free 80942K/84840K, paused 22ms, total 22ms
07-15 19:11:52.933: E/dalvikvm-heap(24501): Out of memory on a 15095824-byte allocation.
07-15 19:11:52.933: I/dalvikvm(24501): "main" prio=5 tid=1 RUNNABLE
07-15 19:11:52.933: I/dalvikvm(24501):   | group="main" sCount=0 dsCount=0 obj=0x41665e40 self=0x41587520
07-15 19:11:52.934: I/dalvikvm(24501):   | sysTid=24501 nice=0 sched=0/0 cgrp=apps handle=1074438484
07-15 19:11:52.934: I/dalvikvm(24501):   | state=R schedstat=( 0 0 0 ) utm=109 stm=17 core=0
07-15 19:11:52.934: I/dalvikvm(24501):   at android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native 
Method)
07-15 19:11:52.934: I/dalvikvm(24501):   at 
android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:657)
07-15 19:11:52.934: I/dalvikvm(24501):   at 
android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:689)
07-15 19:11:52.935: I/dalvikvm(24501):   at 
com.example.withimage.PictureChange.onCreate(PictureChange.java:207)
07-15 19:11:52.935: I/dalvikvm(24501):   at android.app.Activity.performCreate(Activity.java:5248)
07-15 19:11:52.935: I/dalvikvm(24501):   at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
07-15 19:11:52.935: I/dalvikvm(24501):   at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
07-15 19:11:52.935: I/dalvikvm(24501):   at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
07-15 19:11:52.935: I/dalvikvm(24501):   at android.app.ActivityThread.access$800(ActivityThread.java:139)
07-15 19:11:52.935: I/dalvikvm(24501):   at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
07-15 19:11:52.935: I/dalvikvm(24501):   at android.os.Handler.dispatchMessage(Handler.java:102)
07-15 19:11:52.936: I/dalvikvm(24501):   at android.os.Looper.loop(Looper.java:136)
07-15 19:11:52.936: I/dalvikvm(24501):   at android.app.ActivityThread.main(ActivityThread.java:5086)
07-15 19:11:52.936: I/dalvikvm(24501):   at java.lang.reflect.Method.invokeNative(Native Method)
07-15 19:11:52.936: I/dalvikvm(24501):   at java.lang.reflect.Method.invoke(Method.java:515)
07-15 19:11:52.936: I/dalvikvm(24501):   at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-15 19:11:52.936: I/dalvikvm(24501):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-15 19:11:52.937: I/dalvikvm(24501):   at dalvik.system.NativeStart.main(Native Method)
07-15 19:11:52.937: D/skia(24501): --- decoder->decode returned false
07-15 19:11:52.938: D/AndroidRuntime(24501): Shutting down VM
07-15 19:11:52.938: W/dalvikvm(24501): threadid=1: thread exiting with uncaught exception (group=0x41664d40)
07-15 19:11:52.941: E/AndroidRuntime(24501): FATAL EXCEPTION: main
07-15 19:11:52.941: E/AndroidRuntime(24501): Process: com.example.withimage, PID: 24501
07-15 19:11:52.941: E/AndroidRuntime(24501): java.lang.OutOfMemoryError
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native Method)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:657)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:689)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
com.example.withimage.PictureChange.onCreate(PictureChange.java:207)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at android.app.Activity.performCreate(Activity.java:5248)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.app.ActivityThread.access$800(ActivityThread.java:139)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at android.os.Handler.dispatchMessage(Handler.java:102)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at android.os.Looper.loop(Looper.java:136)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at android.app.ActivityThread.main(ActivityThread.java:5086)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at java.lang.reflect.Method.invokeNative(Native Method)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at java.lang.reflect.Method.invoke(Method.java:515)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-15 19:11:52.941: E/AndroidRuntime(24501):    at dalvik.system.NativeStart.main(Native Method)*/)}
/*try(07-15 19:11:43.037:I/Adreno EGL(24501)::EGL 1.4高通公司构建:
AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018_msm8610_LNX.LA.3.5.1_RB1_发行版
07-15 19:11:43.037:I/Adreno EGL(24501):OpenGL ES着色器编译器版本:E031.24.00.08
07-15 19:11:43.037:I/Adreno EGL(24501):建造日期:2014年7月3日星期五
07-15 19:11:43.037:I/Adreno EGL(24501):当地分行:
07-15 19:11:43.037:I/Adreno EGL(24501):远程分支:quic/LNX.LA.3.5.1_RB1.1
07-15 19:11:43.037:I/Adreno EGL(24501):局部斑块:无
07-15 19:11:43.037:I/Adreno EGL(24501):重构分支:AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018
+f2fd134+无
07-15 19:11:43.065:D/OpenGLRenderer(24501):启用调试模式0
7-15 19:11:51.805:D/dalvikvm(24501):释放115K的所有物质的GC_,72%释放3180K/11120K,暂停12毫秒,总计13毫秒
07-15 19:11:51.843:I/dalvikvm堆(24501):为15095824字节分配将堆(frag案例)增长到19.623MB
7-15 19:11:52.014:D/dalvikvm(24501):释放14K的所有物质的GC_,31%释放17989K/25864K,暂停12毫秒,总计12毫秒
07-15 19:11:52.047:I/dalvikvm堆(24501):对于15095824字节分配,将堆(frag案例)增长到34.084MB
7-15 19:11:52.211:D/dalvikvm(24501):释放1K的所有物质的GC_,20%的自由32810K/40608K,暂停12毫秒,总计14毫秒
7-15 19:11:52.287:D/dalvikvm(24501):释放1K的所有物质的总能量,11%的自由能量36489K/40608K,暂停12毫秒,总共12毫秒
07-15 19:11:52.315:I/dalvikvm堆(24501):对于15095824字节分配,将堆(frag案例)增长到52.150MB
7-15 19:11:52.490:D/dalvikvm(24501):所有释放1K的GC_,8%释放51310K/55352K,暂停12毫秒,总计12毫秒
07-15 19:11:52.520:I/dalvikvm堆(24501):为15095824字节分配将堆(frag案例)增长到66.624MB
7-15 19:11:52.687:D/dalvikvm(24501):释放1K的所有元素的GC_,6%的自由元素66131K/70096K,暂停13ms,总计13ms
07-15 19:11:52.716:I/dalvikvm堆(24501):为15095824字节分配将堆(frag案例)增长到81.097MB
2007-15 19:11:52.911:D/dalvikvm(24501):释放1K的所有物质的GC,5%的自由物质80952K/84840K,暂停14ms,总计14ms
07-15 19:11:52.911:I/dalvikvm堆(24501):强制收集15095824字节分配的软引用
7-15 19:11:52.933:D/dalvikvm(24501):释放9K前的GC_,释放5%的80942K/84840K,暂停22ms,总计22ms
07-15 19:11:52.933:E/dalvikvm堆(24501):15095824字节分配的内存不足。
07-15 19:11:52.933:I/dalvikvm(24501):“主”优先级=5 tid=1可运行
07-15 19:11:52.933:I/dalvikvm(24501):| group=“main”scont=0 dsCount=0 obj=0x41665e40 self=0x41587520
2007-15 19:11:52.934:I/dalvikvm(24501):| sysTid=24501 nice=0 sched=0/0 cgrp=apps handle=1074438484
2007-15 19:11:52.934:I/dalvikvm(24501):| state=R schedstat=(0 0 0)utm=109 stm=17 core=0
07-15 19:11:52.934:I/dalvikvm(24501):在android.graphics.BitmapFactory.NativeDecodeDefileDescriptor(本机)
(方法)
07-15 19:11:52.934:I/dalvikvm(24501):在
decodeFileDescriptor(BitmapFactory.java:657)
07-15 19:11:52.934:I/dalvikvm(24501):在
decodeFileDescriptor(BitmapFactory.java:689)
07-15 19:11:52.935:I/dalvikvm(24501):在
com.example.withimage.PictureChange.onCreate(PictureChange.java:207)
07-15 19:11:52.935:I/dalvikvm(24501):在android.app.Activity.performCreate(Activity.java:5248)上
07-15 19:11:52.935:I/dalvikvm(24501):在
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
07-15 19:11:52.935:I/dalvikvm(24501):在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
07-15 19:11:52.935:I/dalvikvm(24501):在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
07-15 19:11:52.935:I/dalvikvm(24501):在android.app.ActivityThread.access$800(ActivityThread.java:139)
07-15 19:11:52.935:I/dalvikvm(24501):在
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
07-15 19:11:52.935:I/dalvikvm(24501):在android.os.Handler.dispatchMessage(Handler.java:102)上
07-15 19:11:52.936:I/dalvikvm(24501):位于android.os.Looper.loop(Looper.java:136)
07-15 19:11:52.936:I/dalvikvm(24501):位于android.app.ActivityThread.main(ActivityThread.java:5086)
07-15 19:11:52.936:I/dalvikvm(24501):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-15 19:11:52.936:I/dalvikvm(24501):在java.lang.reflect.Method.invoke(Method.java:515)
07-15 19:11:52.936:I/dalvikvm(24501):在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-15 19:11:52.936:I/dalvikvm(24501):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
7-15 19:11:52.937:I/dalvikvm(24501):在dalvik.system.NativeStart.main(本机方法)
07-15 19:11:52.937:D/skia(24501):---解码器->解码返回false
07-15 19:11:52.938:D/AndroidRuntime(24501):关闭虚拟机
07-15 19:11:52.938:W/dalvikvm(24501):threadid=1:线程退出时出现未捕获异常(组=0x41664d40)
07-15 19:11:52.941:E/AndroidRuntime(24501):致命异常:主
07-15 19:11:52.941:E/AndroidRuntime(24501):进程:com.example.withimage,PID:24501
07-15 19:11:52.941:E/AndroidRuntime(24501):java.lang.OutOfMemoryError
07-15 19:11:52.941:E/AndroidRuntime(24501):在
android.graphics.BitmapFactory.NativeDecodeDefileDescriptor(本机方法)
07-15 19:11:52.941:E/AndroidRuntime(24501):在
decodeFileDescriptor(BitmapFactory.java:657)
07-15 19:11:52.941:E/AndroidRuntime(24501):在
decodeFileDescriptor(BitmapFactory.java:689)
07-15 19:11:52.941:E/AndroidRuntime(24501):在
com.example.withimage.PictureChange.onCreate(PictureChange.java:207)
07-15 19:11:52.941:E/AndroidRuntime(24501):在android.app.Activity.performCreate(Activity.java:5248)上
07-15 19:11:52