从Gallery中选择照片后,我的Android应用程序将关闭。(帖子上有一段bug的视频)

从Gallery中选择照片后,我的Android应用程序将关闭。(帖子上有一段bug的视频),android,android-intent,garbage-collection,android-gallery,intentfilter,Android,Android Intent,Garbage Collection,Android Gallery,Intentfilter,谢谢你抽出时间。我正在做一个应用程序,我从活动A启动画廊,选择一个图像并返回到同一活动A 我在使用单个活动(定义为清单上的启动器)的项目中这样做没有问题,但当我从清单上定义为默认活动的整个项目中这样做时,它不能正常工作 我用于打开图库并选择照片的意图: public void openGallery(int req_code){ Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(

谢谢你抽出时间。我正在做一个应用程序,我从活动A启动画廊,选择一个图像并返回到同一活动A

我在使用单个活动(定义为清单上的启动器)的项目中这样做没有问题,但当我从清单上定义为默认活动的整个项目中这样做时,它不能正常工作

我用于打开图库并选择照片的意图:

public void openGallery(int req_code){

   Intent intent = new Intent();
   intent.setType("image/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);
   startActivityForResult(Intent.createChooser(intent,"Select file to upload "), req_code);
}
获取数据的onActivityResult(从hole项目执行时从未调用):

这是logcat转储:

01-05 15:18:14.569: I/ActivityManager(59): Starting activity: Intent {   act=android.intent.action.UPLOADIMAGEDEMO cmp=com.example/.UploadImageDemo }
01-05 15:18:15.779: D/dalvikvm(2496): GC_EXTERNAL_ALLOC freed 2697 objects / 189152 bytes in 92ms
01-05 15:18:16.599: I/ActivityManager(59): Displayed activity com.example/.UploadImageDemo: 1953  ms (total 1953 ms)
01-05 15:18:21.899: D/dalvikvm(279): GC_EXPLICIT freed 871 objects / 134112 bytes in 217ms
01-05 15:18:26.620: I/ActivityManager(59): Starting activity: Intent {  act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) }
01-05 15:18:28.250: I/ActivityManager(59): Starting activity: Intent {  act=android.intent.action.GET_CONTENT typ=image/* flg=0x3000000  cmp=com.android.gallery/com.android.camera.ImageGallery }
01-05 15:18:28.670: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 388 objects / 53352 bytes in 60ms
01-05 15:18:28.850: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 326 objects / 90664 bytes in 53ms
01-05 15:18:29.200: I/ActivityManager(59): Displayed activity    com.android.gallery/com.android.camera.ImageGallery: 873 ms (total 2345 ms)
01-05 15:18:29.420: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 725 objects / 106960 bytes in 140ms
01-05 15:18:30.430: W/InputManagerService(59): Starting input on non-focused client         com.android.internal.view.IInputMethodClient$Stub$Proxy@45020da8 (uid=10002 pid=279)
01-05 15:18:32.010: D/dalvikvm(112): GC_FOR_MALLOC freed 9994 objects / 476368 bytes in 149ms
最后,我首先从整个项目(退出应用程序)记录了仿真器的行为,然后从单独的项目(运行良好)记录了仿真器的行为


非常感谢

我有启动Gallery以拾取图像的工作代码,代码如下:

static final int GALLERY_RESULT = 1;

Intent j = new Intent(Intent.ACTION_PICK, Images.Media.EXTERNAL_CONTENT_URI);
j.setType("image/*");
startActivityForResult(j, GALLERY_RESULT);
我对结果的处理如下:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case GALLERY_RESULT:
                Uri imgUri = intent.getData();
                imgView.setImageURI(imgUri);
            break;
        }
    }
}

尝试在活动清单中更改:
android:noHistory=“false”
从清单文件中删除android:noHistory=“true”属性,如下所示:

 <activity
        android:name=".YourActivity"
        android:noHistory="true"   <-------------------Remvoe this line
        android:theme="@style/AppTheme"/>

请分享日志猫转储。嘿,赫曼!在那里我更新了帖子。如果您有任何想法,请告诉我。我相信getPath(selectedImageUri)函数可能有问题。尝试选择作为Uri类函数的selectedImageUri.getPath()。如果Uri无效,它将返回null。我只是尝试了一下,但不起作用。你找到解决这个问题的方法了吗?我用你的代码更改了intent结构,但它在项目中仍然不起作用。它会打开图库,我选择foto,当它应该返回到活动时,它会退出应用程序。在你的日志中,大约有5到10条红色线条,请将它们粘贴在这里。他们会告诉你是什么导致了错误。你之前粘贴的logcat没有多大帮助。我认为它不会显示错误,因为它退出了gallery,而gallery不是应用程序的一部分。
 <activity
        android:name=".YourActivity"
        android:noHistory="true"   <-------------------Remvoe this line
        android:theme="@style/AppTheme"/>
 <activity
        android:name=".YourActivity"
        android:theme="@style/AppTheme"/>