React-Native:错误类型3:Activity类不存在

Cin*_*n88 14 mobile android android-studio react-native

我知道关于这个问题有很多问题/答案。然而,我在过去的几天里尝试了一些我在 SO 上找到的解决方案,但到目前为止还没有一个有效。

我的错误:

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.
Run Code Online (Sandbox Code Playgroud)

以下是我根据其他 SO 帖子尝试做的所有事情的列表:

尝试

  1. 运行adb kill-server, adb start-server, 那么react-native run-android

  2. 运行adb reverse tcp:8081 tcp:8081,然后react-native run-android(我曾经合作过的一位高级开发人员很久以前就告诉我这个问题可能与此有关,但我无法联系到他)

  3. 从模拟器以及我的物理设备卸载应用程序

  4. Build -> Clean Project

  5. Files -> Invalidate Cache / Restart

  6. Files -> Sync Project with Gradle Files

  7. Build -> Rebuild Project

  8. 删除了gradle缓存文件/project/android/.gradle/5.1.1

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

  10. android/app/build.gradle查看构建类型

debug {
  applicationIdSuffix ".debug"
}
stagingRelease {
  applicationIdSuffix ".staging"
}
release {

}
Run Code Online (Sandbox Code Playgroud)

react-native run-android --variant=[debug] --appIdSuffix '[.debug]'

&&

react-native run-android --variant=[stagingRelease] --appIdSuffix '[.staging]'

(这些都有不同的错误)

  1. 确保 android/app/build.gradle
defaultConfig {
        applicationId "WHATEVER_THIS_IS" 
}
Run Code Online (Sandbox Code Playgroud)

需要匹配 android/app/src/main/java/com/app_name/MainActivity.java 第一行:

package WHATEVER_THIS_IS;
Run Code Online (Sandbox Code Playgroud)

需要匹配 android/app/src/main/java/com/app_name/MainApplication.java 第一行:

package WHATEVER_THIS_IS;
Run Code Online (Sandbox Code Playgroud)

需要匹配 android/app/src/main/AndroidManifest.xml 第一行:

package="WHATEVER_THIS_IS">
Run Code Online (Sandbox Code Playgroud)
  1. 去了android/app/build.gradle并改变:
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
    }
}
Run Code Online (Sandbox Code Playgroud)

splits {
    abi {
        reset()
        enable true
        universalApk true  // If true, also generate a universal APK
        include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 前往C:/Users/User/.gradle删除cache. 无法删除所有内容,因为我不断收到警报,其中的许多文件/文件夹当前“在另一个程序中打开”(据我所知,这是不真实的)

什么都没起作用。

我关注的帖子以获取解决方案

错误类型 3 错误:活动类 {} 不存在

https://github.com/facebook/react-native/issues/8653

“react-native run-android” - 构建成功,但出现错误类型 3 错误:活动类 MainActivity 不存在

错误类型 3. React Native(Android 设备)中不存在 Activity 类 {com.awesome_project/ com.awesome_project.MainActivity}

小智 15

即使我也面临着同样的问题,最后我找到了解决方案。

  1. 删除app/build目录。
  2. cd 进入 android 并运行./gradlew uninstallAll(即,您的设备应该连接到您的系统)。按照上述步骤后就开始工作了。

  • 不适合我 (3认同)

小智 7

我得到了错误

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.
Run Code Online (Sandbox Code Playgroud)

这是对我有用的解决方案

打开android/app/build.gradle项目中的文件。

找到defaultConfig文件中的部分。在本节中,您将找到applicationId

defaultConfig {
    applicationId "com.myproject"
}
Run Code Online (Sandbox Code Playgroud)

现在,打开android/app/src/main/java/com/app_name/MainActivity.java 并检查第一行

package com.myproject;
Run Code Online (Sandbox Code Playgroud)

确保与com.myproject该值匹配applicationId

同样,验证包名称是否与值AndroidManifest.xml匹配applicationId。打开位于的文件android/app/src/main/AndroidManifest.xml并检查第一行:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myproject">
Run Code Online (Sandbox Code Playgroud)

确保包名称与值com.myproject匹配applicationId

验证所有包名称一致后,您现在可以尝试使用以下命令运行 React Native 应用程序:

npx react-native run-android
Run Code Online (Sandbox Code Playgroud)

如果问题仍然存在,您可以尝试从设备或模拟器中卸载该应用。运行以下命令:

adb uninstall com.myproject
Run Code Online (Sandbox Code Playgroud)

替换com.myproject为您的实际applicationId值:

然后,重新运行命令:

npx react-native run-android
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题,并且您的应用程序应该可以正确运行。


Hoo*_*man 5

对于那些可能经历过和我遇到同样情况的人!

解释:

注意:我正在弹出模式下处理我的应用程序

我已将我的react-native npm 包更新到最新版本(在撰写此答案时@0.67.2)。然后,当我使用(npx react-native run-android)在模拟器中盯着(运行)我的 Android 应用程序时,我遇到了这个错误:

错误类型 3 - 错误:活动类 {*.MainActivity} 不存在。

对我有用的解决方案:

  1. 在 Android studio => 虚拟设备管理器 => 我擦除了用户数据(请注意随附的屏幕截图) 在此输入图像描述

  2. 在 Visual Studio 中的项目根目录中,找到 android 文件夹。删除应用程序文件夹内的构建文件夹。(请注意所附截图) 在此输入图像描述

  3. 运行npx react-native run-android,您必须能够让您的应用程序再次顺利运行。


Ser*_*kyi 4

对于 RN 项目尝试运行adb reverse tcp:8081 tcp:8081


归档时间:

查看次数:

18554 次

最近记录:

1 年,11 月 前