繁体   English   中英

react-native run-android 之后的两个应用

[英]Two apps after react-native run-android

我正在制作一个 react native 应用程序,之前它运行良好,但是现在当我运行“react-native run-android”时,在成功安装和启动后,我可以在模拟器中看到两个应用程序,并且它们都运行良好.
那么,有什么想法为什么我看到 2 个应用程序,或者我应该说为什么我安装了一个额外的重复应用程序?

我认为您在遇到此问题后在您的应用程序中添加了启动画面,如果您添加两次这样的内容,请首先转到此目录: android/app/src/main/AndroidManifest.xml

       <activity
        android:name=".SplashActivity"
        android:theme="@style/SplashTheme"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity> -->

它将渲染两次并在您的设备上构建两个应用程序。

在我的文件中

AndroidManifest.xml

<!-- remove just first part the activity, but i comment this part -->

  <!-- <activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity> -->



  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/SplashTheme"
    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" />
    </intent-filter>
  </activity>

问题是由于启动和主要活动中的多个类别 LAUNCHER。

<category android:name="android.intent.category.LAUNCHER" />

SplashActivity 和 MainActivity 的解决方案是改变

<category android:name="android.intent.category.LAUNCHER" />

<category android:name="android.intent.category.DEFAULT" />

在主活动中。

.SplashActivity 和 .MainActivity 的文件看起来像这样;

    <activity
        android:name=".SplashActivity"
        android:theme="@style/SplashTheme"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>

我也有这个问题。 事实证明,我安装的其中一个 RN lib 创建了一个额外的<activity /><intent-filter />标签。 只需检查您的AndroidManifest.xml

我的来源:正在运行的应用程序在 Android Studio 中提供了 2 个应用程序图标 - 新手

改变这个

<activity
            android:name=".SplashActivity"
            android:theme="@style/SplashTheme"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize"
        android:exported="true"
      >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>

<activity
            android:name=".SplashActivity"
            android:theme="@style/SplashTheme"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize"
        android:exported="true"
      />

基本上你有两个意图过滤器删除一个

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

添加到上面 Aras 发布的答案中,对我来说,问题特别在于标记为“MAIN”和“LAUNCHER”的额外intent-filter属性。 看起来,如果不创建重复的应用程序,就不能出现多次这些。

       <activity
         android:name=".SplashActivity"
         android:theme="@style/SplashTheme"
         android:label="@string/app_name">
         <!-- You'll either want to remove this section, or ensure that it does not exist in any other activities. -->
         <intent-filter>
           <action android:name="android.intent.action.MAIN" />
           <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
       </activity>

检查已安装应用程序的包名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM