I went through many similar questions on SO, but none offered a solution that helped me. Worth to mention that it abruptly happened during debugging, right after I managed to launch this activity (in the same debugging session). I didn't change anything significant so I have absolutely no idea how I got this problem.
I get the error when I try to start a new activity:
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
Error message:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.xxx/com.xxx.MainActivity}; have you declared this activity in your AndroidManifest.xml?
Both activities are declared in the same package com.xxx. Manifest (removed irrelevant code):
<?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>
I tried stuff like putting the explicit path both in manifest and when creating the Intent, but it didn't help, as well as cleaning the project.
Any idea? Thanks!
EDIT: Here is the activities part of the project structure:

I created a clean copy of
MainActivity, duplicated the xml and replaced all references to the old activity and it works. The declaration in the manifest is also identical.I have no idea why this problem occurred, but a deep inspection definitely doesn't worth it, so this workaround is the least time consuming solution.
EDIT: I faced this issue again and found the real problem. There was a piece of code that disables the aforementioned activity, which then throws
ActivityNotFoundExceptioneven when the app is closed and re-opened. I guess that clearing cache would have revealed the situation as well.Anyway, I added a temporary code in the calling activity to enable
MainActivityand it worked:I obviously removed the disabling code, which is not relevant.