【发布时间】:2015-09-24 13:49:52
【问题描述】:
在我的 android 应用程序中,我使用了一个库项目,并使用了其中一个活动。但是在库项目中,该活动具有 MAIN 操作和 LAUNCHER 类别意图过滤器。所以我将该活动添加到我的清单中并删除了意图过滤器。清单似乎已正确合并到 build/intermediates/manifests/full/debug/AndroidManifest.xml 中,并且活动看起来如预期(没有意图过滤器):
<activity
android:name="com.michaelrnovak.util.logger.Logger"
android:configChanges="orientation"
android:label="@string/show_log" >
</activity>
但是,当我在模拟器中从 AndroidStudio 启动应用程序时,会启动库的 Logger 活动而不是我的 AlertsActivity。我做错了什么?
这是库的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.michaelrnovak.util.logger"
android:versionCode="8"
android:versionName="1.5">
<uses-permission android:name="android.permission.READ_LOGS" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=".Logger"
android:label="@string/app_name"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
</manifest>
并且我的应用清单具有以下相关活动定义:
<activity
android:name=".AlertsActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
</activity>
<activity android:name="com.michaelrnovak.util.logger.Logger"
android:label="@string/show_log"
android:configChanges="orientation"
tools:replace="android:label"
>
<intent-filter tools:node="removeAll" />
</activity>
【问题讨论】:
-
@Gavriel,请检查我的回答。它可能会解决您的情况。
标签: android merge android-manifest intentfilter android-launcher