模拟器应用程序在启动第二个活动后停止
Posted
技术标签:
【中文标题】模拟器应用程序在启动第二个活动后停止【英文标题】:Emulator app stopped after launching second activity 【发布时间】:2021-11-27 21:12:47 【问题描述】:我有一个 ProfileActivity:
public class ProfileActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
final ImageView exampleImage = (ImageView) this.findViewById(R.id.exampleImageView);
exampleImage.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
// [TODO] Implement application behavior when the user clicks the profile picture
//Toast.makeText(ProfileActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
startActivity(new Intent(ProfileActivity.this, GalleryActivity.class));
);
我还有第二个活动“GalleryActivity”:
public class GalleryActivity extends AppCompatActivity
ImageView imageView;
private static final int PICK_IMAGE = 100;
Uri imageUri;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE)
imageUri = data.getData();
imageView.setImageURI(imageUri);
但是,当我启动 android 模拟器然后单击图像时,它并没有把我带到照片库,而是把我带到了这个: 为什么会这样,我该如何解决?\
E/AndroidRuntime: FATAL EXCEPTION: main
android.content.ActivityNotFoundException: Unable to find explicit
activity class
pickture.GalleryActivity;
have you declared this activity in your AndroidManifest.xml?
【问题讨论】:
从 logcat 发布堆栈跟踪。此外,模拟器没有崩溃,您的应用程序崩溃了。两者之间有一个非常重要的区别。 编辑了问题! 【参考方案1】:它告诉你: android.content.ActivityNotFoundException:找不到显式 活动课
这意味着您尚未将 GalleryActivity 添加到 Android 清单文件中。检查一下。
还有,你为什么需要这个活动?你可以开始你的 Intent 库 = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
来自 ProfileActivity。
【讨论】:
【参考方案2】:您在 GalleryActivity 上收到 ActivityNotFoundException,这意味着您在 AndroidManifest.xml 文件中声明活动的方式有问题。如果您一直阅读,错误消息实际上暗示了这一点。
要解决此问题,您需要在 AndroidManifest.xml 文件中的应用程序标记的一侧声明您的 GalleryActivity
基本活动声明
<activity
android:name=".GalleryActivity"
android:exported="true">
</activity>
应用声明的放置位置
<application
...
...>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<- PUT YOUR ACTIVITY DECLARATION HERE ->
</application>
【讨论】:
问题已编辑 编辑回复以反映您遇到的问题!【参考方案3】:你有 2 个问题 第一个:GalleryActivity 类中缺少 setContentView。
setContentView(R.layout.activity_gallery);
第二:您需要在 AndroidManifest.xml 文件中的应用程序标签中声明您的 GalleryActivity
<activity android:name=".GalleryActivity"/>
【讨论】:
以上是关于模拟器应用程序在启动第二个活动后停止的主要内容,如果未能解决你的问题,请参考以下文章
不幸的是,Flutter App 因无法启动活动 ComponentInfo 错误而停止工作
一个 JMS 消费者停止监听活动的 mq 主题,而第二个没有