无法找到明确的 activity class,即使我在清单中声明了意图

Unable to find explicit activity class, even when i declare the intent in the manifest

我有一个 activity,我在我的清单中声明:

<?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

该应用程序包含一个内部库和另一个 activity。

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

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 的 contructors 之一,例如

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

出于某种原因,只有当您动态地知道 class 时,您才可以使用带有两个字符串的构造函数。

另外,更新您的清单如下:

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

应用程序包名称只能小写,如Oracle Docs

中Java的命名约定所述

Package names are written in all lower case to avoid conflict with the names of classes or interfaces

这个问题可能与下面给出的线程重复

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