2017-12-29 40 views
0

他のアプリと画像を共有するときに、アプリがandroid.os.TransactionTooLargeExceptionを受け取ることがあります。コードは画像そのものではなく、URIを渡しています。 最初のクラッシュの後、問題なく何度でも同じプロセスを繰り返すことができます。 エラーのアンドロイド.os.TransactionTooLargeExceptionも、問題の正確な場所を特定するために特定されていません。他のアプリと画像を共有するときにandroid.os.TransactionTooLargeExceptionが発生する

さらにこのエラーをデバッグする方法はありますか? 解決方法

ご協力いただきありがとうございます。

private void sharePicture() { 

     BitmapDrawable draw = (BitmapDrawable) mIvPicture.getDrawable(); 
     Bitmap bitmap = draw.getBitmap(); 

     FileOutputStream outStream = null; 
     File sdCard = Environment.getExternalStorageDirectory(); 
     File dir = new File(sdCard.getAbsolutePath() + "/DogWalkTracker"); 
     dir.mkdirs(); 
     String fileName = String.format("%d.jpg", System.currentTimeMillis()); 
     File outFile = new File(dir, fileName); 

     try { 
      outStream = new FileOutputStream(outFile); 
      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream); 
      outStream.flush(); 
      outStream.close(); 
     } catch (Exception ex) { 
      Toast.makeText(mContext, R.string.msgErrorPicture3, Toast.LENGTH_LONG).show(); 
      return; 
     } 
    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 
    intent.setData(Uri.fromFile(outFile)); 
    getActivity().sendBroadcast(intent); 

    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(outFile)); 
    shareIntent.setType("image/jpeg"); 
    startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.msgSelectApp))); 

} 


12-29 12:59:21.779 15450-15450/br.com.cfb.dogwalktrackeruser E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 667052) 
    12-29 12:59:21.781 15450-15450/br.com.cfb.dogwalktrackeruser D/AndroidRuntime: Shutting down VM 
    12-29 12:59:21.786 15450-15450/br.com.cfb.dogwalktrackeruser E/AndroidRuntime: FATAL EXCEPTION: main 
                        Process: br.com.cfb.dogwalktrackeruser, PID: 15450 
                        java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 667052 bytes 
                         at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3776) 
                         at android.os.Handler.handleCallback(Handler.java:751) 
                         at android.os.Handler.dispatchMessage(Handler.java:95) 
                         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: android.os.TransactionTooLargeException: data parcel size 667052 bytes 
                         at android.os.BinderProxy.transactNative(Native Method) 
                         at android.os.BinderProxy.transact(Binder.java:615) 
                         at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3700) 
                         at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3768) 
                         at android.os.Handler.handleCallback(Handler.java:751)  
                         at android.os.Handler.dispatchMessage(Handler.java:95)  
                         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)  
+0

スタックトレースからは、保存されたインスタンス状態「Bundle」が大きすぎるように感じられます。 – CommonsWare

+0

こんにちはCommonsWare。私は、アプリケーションをテストし、エラーがonSaveInstanceStateの後に発生することを確認したので、私はその断片を見て、断片や画像に他のデータを渡していたことに気付きました。フラグメントデータ。ありがとうございました。 – Carlos

答えて

0

Iアプリをテストし、エラーが私が投稿コードの実行後onSaveInstanceState後に発生することを確認するので、私は、断片に通過し、他のアプリとの通知を開始した断片を見画像と他のデータ。

私はちょうど画像Uriと問題が解決された断片に渡されました。

関連する問題