2011-02-03 206 views
4

我在Logcat中收到一個intent交付錯誤,當我調用這個函數時,app意外停止;Android:傳遞結果失敗ResultInfo {who = null,request = 1,result = -1,data = Intent

startActivityForResult(new Intent(Intent.ACTION_PICK, 
     android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI), 1); 

或這個事情;

startActivityForResult(new Intent(Intent.ACTION_PICK, 
     android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), 1); 

然後用它處理;

@Override 
protected void onActivityResult(int requestCode, int resultCode, 
      Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 

if (resultCode == RESULT_OK) { 

    Uri contentURI = Uri.parse(intent.getDataString()); 

    c = mSurfaceHolder.lockCanvas(); 

    tempCanvas.setBitmap(mDrawing); 

    Bitmap tempBitmap = null; 

    ContentResolver cr = getContentResolver(); 

    try {   
     InputStream in = cr.openInputStream(contentURI); 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize=8; 
     tempBitmap = BitmapFactory.decodeStream(in,null,options); 
     } 
    catch (Exception ee) { 
     tempBitmap = BitmapFactory.decodeResource(getResources(), 
        R.drawable.icon); 
     } 

    tempCanvas.drawBitmap(tempBitmap, 0, 0, null); 
    c.drawBitmap(tempBitmap, 0, 0, null); 

    mSurfaceHolder.unlockCanvasAndPost(c); 
    } 
} 

錯誤與「應用程序意外停止」與logcat顯示;

ERROR/AndroidRuntime(24768): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=com.htc.HTCAlbum.action.ITEM_PICKER_FROM_COLLECTIONS dat=content://media/external/images/media/185 }} to activity {com.example.colorbook/com.example.colorbook.Colorbook}: java.lang.NullPointerException 

    Complete logcat as it finished gallery view activity and tried to return intent; 
    02-03 10:47:22.042: DEBUG/MainActivity(22984): [HTCAlbum][MainActivity][onPause]: Begin 
    02-03 10:47:22.042: DEBUG/MainActivity(22984): store mCurrentPosition_backup=0 
    02-03 10:47:22.042: DEBUG/DisplayManager(22984): store mCurrentPosition_backup=0 
    02-03 10:47:22.092: DEBUG/dalvikvm(22984): GC_EXPLICIT freed 1459 objects/91880 bytes in 44ms 
    02-03 10:47:22.102: INFO/AlbumMapper(22984): Create thumbnail for: /mnt/sdcard/workspace/Colorbook/res/drawable/fileload.png 
    02-03 10:47:22.102: DEBUG/ThumbnailWorker(22984): [stopWorking] Stop working, now join #37, /mnt/sdcard/workspace/Colorbook/res/drawable/fileload.png 
    02-03 10:47:22.102: DEBUG/AlbumAdapter(22984): set thread priority to normal 
    02-03 10:47:22.102: DEBUG/AbstractViewGetter(22984): Raise getter prefetcher thread priority to normal. 
    02-03 10:47:22.102: DEBUG/AbstractViewGetter(22984): Join getter prefetch thread 
    02-03 10:47:22.102: DEBUG/AbstractViewGetter(22984): Getter prefetch join time: 2 
    02-03 10:47:22.102: DEBUG/AlbumMapper(22984): cancel current decode operation 
    02-03 10:47:22.182: DEBUG/AndroidRuntime(24768): Shutting down VM 
    02-03 10:47:22.182: WARN/dalvikvm(24768): threadid=1: thread exiting with uncaught exception (group=0x400259f8) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): FATAL EXCEPTION: main 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=com.htc.HTCAlbum.action.ITEM_PICKER_FROM_COLLECTIONS dat=content://media/external/images/media/185 }} to activity {com.example.colorbook/com.example.colorbook.Colorbook}: java.lang.NullPointerException 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread.deliverResults(ActivityThread.java:3734) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread.access$2800(ActivityThread.java:135) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2166) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.os.Handler.dispatchMessage(Handler.java:99) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.os.Looper.loop(Looper.java:144) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread.main(ActivityThread.java:4937) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at java.lang.reflect.Method.invokeNative(Native Method) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at java.lang.reflect.Method.invoke(Method.java:521) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at dalvik.system.NativeStart.main(Native Method) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): Caused by: java.lang.NullPointerException 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at com.example.colorbook.Colorbook.loadImageToCanvas(Colorbook.java:524) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at com.example.colorbook.Colorbook.onActivityResult(Colorbook.java:231) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.Activity.dispatchActivityResult(Activity.java:3931) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): at android.app.ActivityThread.deliverResults(ActivityThread.java:3730) 
    02-03 10:47:22.182: ERROR/AndroidRuntime(24768): ... 11 more 
    02-03 10:47:22.202: WARN/ActivityManager(97): Force finishing activity com.example.colorbook/.Colorbook 
    02-03 10:47:22.704: WARN/ActivityManager(97): Activity pause timeout for HistoryRecord{46207010 com.example.colorbook/.Colorbook} 
    02-03 10:47:22.742: DEBUG/Sensors(97): close_akm, fd=114 
    02-03 10:47:22.852: DEBUG/MainActivity(22984): [HTCAlbum][MainActivity][onStop]: Begin 
    02-03 10:47:22.902: DEBUG/dalvikvm(22984): GC_EXPLICIT freed 398 objects/23264 bytes in 38ms 
    02-03 10:47:22.902: DEBUG/MainActivity(22984): [HTCAlbum][MainActivity][onDestroy]: Begin 
    02-03 10:47:22.912: DEBUG/OnlineDataCenter(22984): [HTCAlbum][OnlineDataCenter][unbindContext]: Begin 
    02-03 10:47:22.912: DEBUG/OnlineDataCenter(22984): [HTCAlbum][OnlineDataCenter][unbindContext]: [email protected] size: 0 
    02-03 10:47:22.912: DEBUG/OnlineDataCenter(22984): [HTCAlbum][OnlineDataCenter][unbindContext]: No more clients. release resources. 
    02-03 10:47:22.912: DEBUG/OnlineDataCenter(22984): [HTCAlbum][OnlineDataCenter][unbindContext]: End 0 
    02-03 10:47:22.912: DEBUG/ThumbnailWorker(22984): [stopWorking] Stop working, now join #-1, Decode Complete!! 
    02-03 10:47:22.912: DEBUG/AlbumAdapter(22984): set thread priority to normal 
    02-03 10:47:22.912: DEBUG/AlbumMapper(22984): cancel current decode operation 
    02-03 10:47:22.912: DEBUG/AlbumMapper(22984): cancel current decode operation 
    02-03 10:47:22.912: DEBUG/ThumbnailWorker(22984): [stopWorking] Stop working, now join #-1, Decode Complete!! 
    02-03 10:47:22.912: DEBUG/AlbumAdapter(22984): set thread priority to normal 
    02-03 10:47:22.912: DEBUG/AlbumAdapter(22984): Join worker thread in destroy 
    02-03 10:47:22.912: DEBUG/AlbumAdapter(22984): Join time: 0 
    02-03 10:47:22.922: INFO/MainActivity(22984): mWorker finishes jobs at onDestroy(). 
    02-03 10:47:22.932: DEBUG/CollectionsActivity(22984): [HTCAlbum][CollectionsActivity][onDestroy]: Begin 
    02-03 10:47:22.932: DEBUG/AlbColAdap(22984): [HTCAlbum][AlbumCollectionsAdapter][onDestroy]: Begin 
    02-03 10:47:22.942: INFO/BatteryStatsImpl(97): notePhoneSignalStrengthLocked: 2->3 
    02-03 10:47:22.952: DEBUG/AlbColAdap(22984): [HTCAlbum][AlbumCollectionsAdapter][onDestroy]: End 

524行是這樣; c.drawBitmap(tempBitmap,0,0,null);

+0

後? – Nanne 2011-02-03 16:48:25

回答

5

解決方案:

SurfaceChanged期間繪製位圖,使用標誌是否加載圖像。

顯然SurfaceView還沒有準備好時,當時被繪製,你可以指出一行Colorbook.java:524是什麼MediaStore活動返回選擇

相關問題