我正在使用Android Studio v0.5.9创建一个应用程序,该应用程序具有库项目作为依赖项。但是,每次我运行项目时,两个具有相同名称和图标的apks都会部署到我的设备上。第一个apk(app)包含我的主模块,而第二个是库项目本身。但是,当我从Eclipse运行相同的项目时,只部署了一个apk,它运行正常。
以下是该问题的一些截图 -
First App(我的模块) -
第二个应用程序(库项目) -
顶级build.gradle
文件 -
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
}
}
主模块build.gradle
文件 -
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
packageName 'com.Swap.Rooms'
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName '1.0'
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:19.0.1'
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.android.support:appcompat-v7:19.+'
compile project(':lib')
}
库项目build.gradle
文件 -
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
packageName "com.jfeinstein.jazzyviewpager"
minSdkVersion 4
targetSdkVersion 17
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:+'
compile files('libs/nineoldandroids-2.4.0.jar')
}
settings.gradle
-
include ':app'
include ':lib'
请帮我解决这个问题。在此先感谢!!
答案 0 :(得分:6)
也许这会对其他人有所帮助。
Gradle也正在为库项目进行清单合并。所以问题是让AndroidManifes.xml
与库保持不变。它有application
节点用于演示,此节点已成功合并到主AndroidManifest.xml
。
我打算向Google提交问题,因为我认为它应该阻止或警告这种情况。
答案 1 :(得分:6)
浏览您的图书馆并查看他们的AndroidManifest.xml
。其中一个应该有一个<application>
标签。删除标签,双重应用程序问题将得到解决。
答案 2 :(得分:3)
ApplicationManifest.xml中影响创建多个启动器图标的特定元素是包含<intent-filter>
的{{1}}。删除此<category android:name="android.intent.category.LAUNCHER"/>
可让您控制启动器图标的数量。你可以阅读更详细的答案here。
答案 3 :(得分:2)
我花了一些时间才知道问题出在哪里,但最终为我解决了问题。
问题出在Manifest.xml
文件中。这意味着您有两个活动设置为LAUNCHER
。
只需从不是您的LAUNCHER
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>