找不到显式活动类,即使我在清单中声明了意图



我有一个活动,我在清单中声明:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my">
<uses-sdk android:minSdkVersion="14"/>
<application>
<activity
android:name="com.my.InternalDummyActivity"
android:exported="false">
</activity>
</application>
</manifest>

我也尝试过没有exported=false

应用程序包含一个具有另一个活动的内部库。

我尝试从其他活动(其他命名空间)调用显式意图 但我总是得到一个例外:

Intent intent1 = new Intent(activity.getApplicationContext(), InternalDummyActivity.class);
activity.startActivity(intent1);

ComponentName componentName2 =
new ComponentName(
"com.my","com.my.InternalDummyActivity");
Intent intent2 = new Intent().setComponent(componentName2); //dones work
activity.startActivity(intent2);

Process: com.comp.outter, PID: 9267
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.my/com.my.InternalDummyActivity}; have you declared this activity in your AndroidManifest.xml?

我该如何解决这个问题?

尝试使用使用上下文的组件名称构造器之一,例如

ComponentName cn = new ComponentName(context,
"com.my.InternalDummyActivity");

出于某种原因,只有当您动态了解类时,才能使用采用两个字符串的构造器。

此外,请按如下方式更新清单:

<activity
android:name=".InternalDummyActivity">
</activity>

和应用程序包名称应仅为小写,如 Oracle 文档中的 Java 命名约定中所述

包名称全部以小写形式书写,以避免与 类或接口的名称

这个问题可能是下面给出的线程的副本 如何从安卓工作室中的库模块调用活动

检查这是否是您要查找的。

最新更新