Android Studio会为每个模块安装一个APK

时间:2013-11-25 15:02:38

标签: android android-studio apk android-gradle

我有一个项目,在Android Studio v 0.3.2中使用Gradle构建。 我的项目依赖于其他两个模块(android库)。使用build.gradle文件很好地定义了项目结构。 问题是......当我在Android设备上运行项目时,我在我的设备上安装了3个apk。一个是主项目(唯一正确的一个),另外两个来自导入的模块(两个我不想安装)。 我怎样才能实现这一目标?或者我做错了什么?

项目结构:

  • MyLibModule
  • MainProject
  • MainProject-> libraries->的 MyOtherModule

MyLibModule 与Main项目位于同一路径,因为我还需要在其他项目中使用此模块。

需要明确的是:整个项目构建正常,所有依赖项都可以,但为什么我的设备上有3个APK?

3 个答案:

答案 0 :(得分:15)

经过一整天的努力解决这个问题,我找到了这种奇怪行为的原因。问题是图书馆模块的清单。在我切换到Android工作室之前,我使用过Eclipse。我在库项目的清单中声明了testActivity。从我的库模块的清单中删除所有测试活动解决了这个问题。现在Android Studio只安装MainProject apk。

一些代码: MyLibModule的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.mylibmodule"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7"/>
    <application>
        <activity
            android:name=".TestActivity"
            android:label="@string/app_name">
        </activity>
    </application>
</manifest>

更改为:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.mylibmodule"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7"/>
    <application>
    </application>
</manifest>

....对于MyOtherModule也一样。

注意:空应用程序节点必须保留在清单中,以避免构建错误。

答案 1 :(得分:10)

从库的启动活动中删除intent-filter

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

已更改为

<application>
   <activity android:name=".MainActivity"/>
</application>

答案 2 :(得分:1)

这是因为您的库在build.gradle文件中定义为应用程序而不是库。寻找这一行:

apply plugin: 'android'

并将其替换为:

apply plugin: 'android-library'

您可能还需要对构建文件进行其他调整,因为并非所有适用于应用程序的内容都可以在库构建文件中指定。有关详细信息,请参阅http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Library-projects