2016-06-22 4 views
0

私のライブラリプロジェクトでアクティビティがあります。その活動から、私は図書館からイメージを取得しようとしています。 1000回のうち1回(比喩)、以下のコードはうまく動作します。しかし、ほとんどの場合、画像を選択した後、アプリケーションは黒い画面で止まってしまいます。イメージを選択した後、ACTION_PICKに応答しないアプリケーション

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
intent.setType("image/* video/*"); 
startActivityForResult(intent, REQUEST_GALLERY); 

LOG

これが成功のシナリオです:この後

06-22 11:22:16.559 19038-19038/com.xyz D/SELECT_IMAGE: onCreate 
06-22 11:22:16.869 19038-19038/com.xyz D/SELECT_IMAGE: onResume 
06-22 11:22:24.949 19038-19038/com.xyz D/SELECT_IMAGE: Before startActivityForResult 
06-22 11:22:24.959 19038-19038/com.xyz D/SELECT_IMAGE: After startActivityForResult 
06-22 11:22:32.359 19038-19038/com.xyz D/SELECT_IMAGE: RESULT onActivityResult 
06-22 11:22:32.429 19038-19038/com.xyz D/SELECT_IMAGE: onResume 

、私は、再びちょうどこれらの2つのログを試みたが、その後、

06-22 11:23:02.919 19038-19038/com.xyz D/SELECT_IMAGE: Before startActivityForResult 
06-22 11:23:02.929 19038-19038/com.xyz D/SELECT_IMAGE: After startActivityForResult 

を立ち往生EDITED:ログadb shell dumpsys activity top

java.lang.IndexOutOfBoundsException: Invalid index 6, size is 3 
    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
    at java.util.ArrayList.get(ArrayList.java:308) 
    at com.android.server.am.ActivityStack.getDumpActivitiesLocked(ActivityStack.java:6544) 
    at com.android.server.am.ActivityStackSupervisor.getDumpActivitiesLocked(ActivityStackSupervisor.java:5734) 
    at com.android.server.am.ActivityManagerService.dumpActivity(ActivityManagerService.java:17777) 
    at com.android.server.am.ActivityManagerService.dump(ActivityManagerService.java:16936) 
    at android.os.Binder.dump(Binder.java:334) 
    at android.os.Binder.onTransact(Binder.java:292) 
    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:2568) 
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3242) 
    at android.os.Binder.execTransact(Binder.java:461) 
+0

ようactivityResult上でこれを使用して同じコードがすなわちないライブラリプロジェクト内の他のスタンドアロンアプリケーションでは正常に動作しています。 –

+0

「スタック」はどこですか?いくつかのログを追加しましたか? – pskink

+0

アプリはPhotos Appへ行く - >画像選択 - >黒... 私は私の 'onActivityResult'でログインしようとしましたが、アプリケーションは' onActivityResult'に返されません –

答えて

-1

この

public class MainActivity extends AppCompatActivity { 
final static int REQUEST_GALLERY=1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    intent.setType("image/* video/*"); 
    startActivityForResult(intent, REQUEST_GALLERY); 
} 
@Override 
protected void onActivityResult(int requestCode, int responseCode, 
           Intent intent) { 
    Toast.makeText(getApplicationContext(),"Recieved",Toast.LENGTH_LONG).show(); 
    if (requestCode==REQUEST_GALLERY) 
    { 
     if(responseCode==RESULT_OK) 
     { 
      Uri selectedImage = intent.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
      Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null); 
      cursor.moveToFirst(); 
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String picturePath = cursor.getString(columnIndex); 
      cursor.close(); 
      ImageView imageView = (ImageView) findViewById(R.id.img_view); 
      imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
     } 
     } 
     } 
    } 
+0

Thnxしかし、問題は、アプリケーションが 'onActivityResult'に戻る前にスタックされています –

+0

urリクエストコードと、startActivityforResultのコードを使用した場所を確認してください。その完全にここで働いている –

関連する問題