I'm aware there's a plethora of questions/answers regarding this issue. However, I have spent the past few days trying a number of solutions I've found on SO and none have worked thus far.
My error:
BUILD SUCCESSFUL in 52s
372 actionable tasks: 352 executed, 20 up-to-date
info Running C:\Users\User\AppData\Local\Android\Sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
info Starting the app on emulator-5554 (C:\Users\User\AppData\Local\Android\Sdk/platform-tools/adb -s emulator-5554 shell am start -n mypackage/mypackage.MainActivity)...
Starting: Intent { cmp=mypackage/.MainActivity }
Error type 3
Error: Activity class {mypackage/mypackage.MainActivity} does not exist.
Here is a list of all the things I've attempted to do based on other SO posts:
Attempts
Running adb kill-server, adb start-server, then react-native run-android
Running adb reverse tcp:8081 tcp:8081, then react-native run-android (a senior dev I used to work with told me the issue might be related to this a long time ago, but I cannot get in touch with him)
Uninstalling the App from the Emulator, as well as my physical device
Build -> Clean Project
Files -> Invalidate Cache / Restart
Files -> Sync Project with Gradle Files
Build -> Rebuild Project
Deleted gradle cache files in /project/android/.gradle/5.1.1
AndroidManifest.xml -> <activity android:name=".MainActivity" to <activity android:name="packagename.MainActivity"
android/app/build.gradle to view buildTypes
debug {
applicationIdSuffix ".debug"
}
stagingRelease {
applicationIdSuffix ".staging"
}
release {
}
Ran react-native run-android --variant=[debug] --appIdSuffix '[.debug]'
&&
Ran react-native run-android --variant=[stagingRelease] --appIdSuffix '[.staging]'
(these came with different errors)
defaultConfig {
applicationId "WHATEVER_THIS_IS"
}
needs to match android/app/src/main/java/com/app_name/MainActivity.java line one:
package WHATEVER_THIS_IS;
needs to match android/app/src/main/java/com/app_name/MainApplication.java line one:
package WHATEVER_THIS_IS;
needs to match android/app/src/main/AndroidManifest.xml line one:
package="WHATEVER_THIS_IS">
android/app/build.gradle and changed:splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
to
splits {
abi {
reset()
enable true
universalApk true // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
C:/Users/User/.gradle to delete the cache. Was unable to delete everything, as I kept getting alerts that many of the files/folders inside are currently "open in another program" (untrue as far as I can tell)Nothing worked.
Posts I followed for solutions
Error type 3 Error: Activity class {} does not exist
https://github.com/facebook/react-native/issues/8653
"react-native run-android" - BUILD is SUCCESSFUL but get error type 3 Error: Activity class MainActivity does not exist
Error type 3. Activity class {com.awesome_project/ com.awesome_project.MainActivity} does not exist in react native (Android device)
Even I was facing the same issue, and finally I found a solution.
app/build directory../gradlew uninstallAll (ie, your device should be connected to your system).
It started working after following the above steps.I Got The Error
BUILD SUCCESSFUL in 3m 10s 215 actionable tasks: 215 executed
info Connecting to the development server...
info Starting the app on "EMAY8PU4VGAEN779"...
Starting: Intent { cmp=com.modernlaundaryforapk/.MainActivity }
Error type 3
Error: Activity class
{com.modernlaundaryforapk/com.modernlaundaryforapk.MainActivity} does
not exist.
and here is the solution which worked for me
Open the android/app/build.gradle file in your project.
Locate the defaultConfig section within the file. Inside this section, you will find the applicationId
defaultConfig {
applicationId "com.myproject"
}
Now, open android/app/src/main/java/com/app_name/MainActivity.java and check the first line
package com.myproject;
Make sure that com.myproject matches the applicationId value.
Similarly, verify that the package name in AndroidManifest.xml matches the applicationId value. Open the file located at android/app/src/main/AndroidManifest.xml and check the first line:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myproject">
Ensure that the package name com.myproject matches the applicationId value.
After verifying that all the package names are consistent, you can now attempt to run your React Native app using the following command:
npx react-native run-android
If the issue persists, you can try uninstalling the app from your device or emulator. Run the following command:
adb uninstall com.myproject
replace com.myproject with your actual applicationId value:
Then, rerun the command:
npx react-native run-android
This should resolve the issue, and your app should run correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With