React-Native: Error type 3: Activity class does not exist

Viewed 3532

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

  1. Running adb kill-server, adb start-server, then react-native run-android

  2. 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)

  3. Uninstalling the App from the Emulator, as well as my physical device

  4. Build -> Clean Project

  5. Files -> Invalidate Cache / Restart

  6. Files -> Sync Project with Gradle Files

  7. Build -> Rebuild Project

  8. Deleted gradle cache files in /project/android/.gradle/5.1.1

  9. AndroidManifest.xml -> <activity android:name=".MainActivity" to <activity android:name="packagename.MainActivity"

  10. 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)

  1. Make sure android/app/build.gradle
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">
  1. Went to 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"
    }
}
  1. Went to 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)

3 Answers

Even I was facing the same issue, and finally I found a solution.

  1. Delete app/build directory.
  2. cd into android and run ./gradlew uninstallAll (ie, your device should be connected to your system). It started working after following the above steps.

For RN projects try to run adb reverse tcp:8081 tcp:8081

For those who might experienced the same situation like the one I faced!

Explanation:

Note: I'm working on my app in eject mode

I have updated my react-native npm package to the latest version (By the time of writing this answer @0.67.2). And then when I was staring (running) my android app in the emulator using (npx react-native run-android), I have experienced this error:

Error type 3 - Error: Activity class {*.MainActivity} does not exist.

Solution which worked me:

  1. In Android studio => Virtual device manager => I wiped user data (Please note the attached screenshot) enter image description here

  2. In Visual studio, in the root of your project, locate android folder. delete build folder inside app folder. (please note the attached screenshot) enter image description here

  3. run npx react-native run-android and you must be able to get your app running smoothly again.

Related