Android react-native 中的 MainActivity 不存在错误

Posted

技术标签:

【中文标题】Android react-native 中的 MainActivity 不存在错误【英文标题】:MainActivity does not exist error in Android react-native 【发布时间】: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";
    

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

【问题讨论】:

你找到解决办法了吗? 【参考方案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】:

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

【讨论】:

以上是关于Android react-native 中的 MainActivity 不存在错误的主要内容,如果未能解决你的问题,请参考以下文章

android中的React-native POST请求通过https返回网络错误

Android模拟器中的React-Native Runnable错误

Android react-native 中的 MainActivity 不存在错误

关于Webstorm运行react-native中的Android项目出错的解决办法

在react-native中,我如何在ios和android的图像上添加水印

React-Native:如何缩放字体大小以支持 Android 和 iOS 中的许多不同分辨率和屏幕?