我在我的项目中使用Todd的ProgressWheel,每次安装我的应用程序时,设备上都会出现两个图标,一个用于我的实际应用程序,另一个用于ProgressWheel。我相信这个问题存在于ProgressWheel的自动生成的清单文件中,我无法编辑它:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.todddavies.components.progressbar"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<activity
android:name="com.todddavies.components.progressbar.main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我知道“action MAIN”和“category LAUNCHER”导致了这个问题,但是如果我不能编辑文件,我将如何处理这个问题,因为每次编译时它都会被覆盖。 ProgressWheel通过依赖
包含在我的项目中dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.Todd-Davies:ProgressWheel:[1.0]'
}
答案 0 :(得分:1)
自动生成的构建清单文件AndroidManifest.xml在设备上安装不需要的应用程序
不,它没有。
我在我的项目中使用Todd的ProgressWheel,每次安装我的应用程序时,设备上都会出现两个图标,一个用于我的实际应用程序,另一个用于ProgressWheel。
更准确地说,主屏幕的启动器中会出现两个图标。这些代表两个活动,但只有一个应用程序。
但如果我无法编辑文件,如何在每次编译时被覆盖
,我该如何处理呢?
最好的答案是使用更好的进度轮库,因为我们有a few dozen of them,而你选择的那个包装不好。
如果确实想要使用该库,请在您自己的清单中,作为<application>
元素的子元素,添加:
<activity
android:name="com.todddavies.components.progressbar.main"
tools:node="remove" />
这将要求您将xmlns:tools="http://schemas.android.com/tools"
命名空间声明添加到<manifest>
元素。
这个<activity>
元素的作用是说“嘿,构建系统,我们从库中引入com.todddavies.components.progressbar.main
活动,但摆脱它”。这将作为the manifest merger process的一部分进行处理。