【问题标题】:Android Studio - Build an Android project with Android library which depends on another Android LibraryAndroid Studio - 使用依赖于另一个 Android 库的 Android 库构建一个 Android 项目
【发布时间】:2013-07-19 07:37:12
【问题描述】:

我需要使用 Gradle 构建一个依赖于 Android 库项目 A 的 Android 项目,该项目依赖于另一个 Android 库项目 B。

到目前为止,我有以下内容:

Android 项目:

build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':LibA')
}

android {
    compileSdkVersion 7
    buildToolsVersion "17.0.0"
}

ma​​nifest.xml:

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.cyborg.template.MainActivity"
            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>

Android 库 A:

build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

dependencies {
    compile project(':LibB')
}


android {
    compileSdkVersion 7
    buildToolsVersion "17.0.0"
} 

ma​​nifest.xml:

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

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

</manifest>

Android 库 B:

build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 7
    buildToolsVersion "17.0.0"
} 

ma​​nifest.xml:

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

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

</manifest>

在尝试构建Android项目时,Android studio报以下错误:

Gradle: Execution failed for task ':LibA:processDebugManifest'.
  > Manifest merging failed. See console for more info.

我想该控制台在哪里可以搜索有关错误的更多信息?

我发现了一些关于此错误的问题,但它似乎与我的情况不同。

启示?

谢谢, 亚当。

【问题讨论】:

    标签: android gradle android-studio android-library build.gradle


    【解决方案1】:

    库的清单文件当前必须有一个 &lt;application /&gt; 节点,即使它是空的。

    这是我们将在某个时候删除的限制,但现在,只需添加它。

    【讨论】:

    • 我在某处读到这个,并认为只有 LibA 需要应用程序节点,一旦我添加了它,它就不起作用了,我没有想到要添加到所有项目中。 . 大概是我太累了。将应用程序节点添加到所有 Android-Library 项目中工作,现在构建继续。
    • 如果你无权访问库的源代码怎么办?
    猜你喜欢
    • 2012-05-21
    • 2014-05-27
    • 2016-07-10
    • 2014-06-17
    • 2018-01-05
    • 2013-07-04
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    相关资源
    最近更新 更多