- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 SO 上遇到了很多类似的问题,但没有一个提供对我有帮助的解决方案。值得一提的是,它在调试期间突然发生,就在我设法启动此 Activity (在同一调试 session 中)之后。我没有改变任何重要的东西,所以我完全不知道我是如何遇到这个问题的。
当我尝试启动新 Activity 时收到错误:
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
错误消息:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.xxx/com.xxx.MainActivity}; have you declared this activity in your AndroidManifest.xml?
这两个 Activity 都在同一个包 com.xxx
中声明。 list (删除了不相关的代码):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.xxx">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="misc.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon">
<activity
android:name=".SplashActivity"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label=""
android:theme="@style/Theme.AppCompat.NoActionBar" />
</application>
</manifest>
我尝试过将显式路径放入 list 中以及创建 Intent
时,但它没有帮助,也没有清理项目。
有什么想法吗?谢谢!
编辑:这是项目结构的 Activity 部分:
最佳答案
我创建了 MainActivity
的干净副本,复制了 xml 并替换了对旧 Activity 的所有引用,它可以正常工作。 list 中的声明也是相同的。
我不知道为什么会出现这个问题,但深入检查绝对不值得,所以这个解决方法是最耗时的解决方案。
编辑:我再次遇到这个问题并发现了真正的问题。有一段代码禁用了上述 Activity ,然后即使应用程序关闭并重新打开,也会抛出 ActivityNotFoundException
。我想清除缓存也会揭示这种情况。
无论如何,我在调用 Activity 中添加了一个临时代码来启用 MainActivity
并且它起作用了:
PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(new ComponentName(this, MainActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
我显然删除了不相关的禁用代码。
关于java - ActivityNotFoundException:无法找到显式 Activity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250306/
我是一名优秀的程序员,十分优秀!