【问题标题】:MainActivity does not exist error in Android react-nativeAndroid react-native 中的 MainActivity 不存在错误
【发布时间】:2018-09-09 15:51:06
【问题描述】:

所以我收到 MainActivity 不存在错误,这可能是因为我将包和应用程序从 bomber 重命名为 Bomber 并将 appId 从 com.bomber 更改为 cool.bomber.android

我检查了 AndroidManifest、活动源文件和 build.gradle 文件,但我似乎找不到什么错误

错误信息

Starting: Intent { cmp=cool.bomber.android/.MainActivity }
Error type 3
Error: Activity class {cool.bomber.android/cool.bomber.android.MainActivity} does not exist.

app/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "cool.bomber.android"
...

AndroidMaifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="22" />

<application
  android:name=".MainApplication"
  android:allowBackup="true"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:launchMode="singleTask"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="com.google.intent.category.CARDBOARD" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:host="foo.app.goo.gl" android:scheme="http"/>
        <data android:host="foo.app.goo.gl" android:scheme="https"/>
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

android/app/src/main/java/cool/bomber/android/MainActivity.java

package cool.bomber.android;    
import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {
    @Override
    protected String getMainComponentName() {
        return "Bomber";
    }
}

我不确定我还应该查看什么进行调试。

【问题讨论】:

  • 你找到解决办法了吗?

标签: android react-native android-gradle-plugin react-native-android


【解决方案1】:

您需要正确卸载应用程序。

如果手机打不开,可以使用cmd

adb uninstall "package name"

【讨论】:

  • 这对我有用。谢谢!
【解决方案2】:

在清单中添加包名:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cool.bomber.android">

但仍然不能像这样写完整的包名

<application
  android:name="cool.bomber.android.MainApplication"
  android:allowBackup="true" >

<activity
    android:name="cool.bomber.android.MainActivity"
    >

并确保这是正确的路径

并在 CMD 中写下:

 cd android & gradlew clean 
      or maybe
 cd android && ./gradlew clean 

然后运行react-native run-android

确保您在编写此代码时位于项目文件夹的根目录

否则:

在使用android studio更改包后,关注this刷新整个项目。

【讨论】:

    【解决方案3】:

    对我来说,问题在于我已将 tools:node="replace" 添加到我的 android/app/src/debug/AndroidManifest.xml:

    <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" tools:node="replace"/>
    

    我已经添加了基于有人推荐它用于其他问题,它导致臭名昭著的错误类型 3 出现。一旦我摆脱它,问题就消失了:

    <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning"/>
    

    干杯, 阿尔瓦罗

    【讨论】:

      【解决方案4】:

      我必须重新安装应用程序才能解决问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        • 2020-02-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多