我正在做一个本机应用程序,早些时候它工作正常,但现在当我运行“react-native run-android”时,在成功安装和启动后,我可以在模拟器中看到两个应用程序,这两个应用程序都是工作正常。
所以,任何想法为什么我看到2个应用程序,或者我应该说为什么我要安装一个额外的重复应用程序?
答案 0 :(得分:13)
在您遇到此问题后,我认为您已在应用中添加了启动屏幕,请首先转到以下目录: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>
答案 1 :(得分:5)
我也有这个问题。事实证明,我安装的RN lib之一创建了额外的<activity />
和<intent-filter />
标签。只需查看您的AndroidManifest.xml
。
我的来源:Running app gives 2 app icons in Android Studio - newbie
答案 2 :(得分:1)
问题是由于启动和主要活动中都有多个LAUNCHER类别。
<category android:name="android.intent.category.LAUNCHER" />
SplashActivity和MainActivity的解决方案是更改
<category android:name="android.intent.category.LAUNCHER" />
到
<category android:name="android.intent.category.DEFAULT" />
在MainActivity中。
同时具有.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>
答案 3 :(得分:0)
检查已安装应用的包名称。
答案 4 :(得分:0)
要添加到上面发布的Aras答案中,对我来说,问题特别是带有额外的intent-filter
属性,它们分别标记为“ MAIN”和“ LAUNCHER”。看来,如果不创建重复的应用程序,这些事件就不会发生多于一个。
<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>