【问题标题】:Specifying extra XML for gradle-generated AndroidManifest为 gradle 生成的 AndroidManifest 指定额外的 XML
【发布时间】:2013-06-27 23:09:10
【问题描述】:

是否可以为 gradle 生成的 AndroidManifest 指定额外的 XML 字段。具体用例是我有一个使用google maps的app,根据their documentation,app必须指定:

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

在 AndroidManifest 中。如果您随后尝试使用 gradle 测试此应用,您将获得:

$ ./gradlew connectedCheck
<snip>
:myapp:processTestTestManifest
[manifestMerge1694110764542760523.xml:1, manifestMerge678902239503841223.xml:15] Main manifest has <uses-feature android:glEsVersion='0x00010000'> but library uses glEsVersion='0x00020000'
Note: main manifest lacks a <uses-feature android:glEsVersion> declaration, and thus defaults to glEsVersion=0x00010000.

我目前(相关)的项目结构是:

myapp/AndroidManifest.xml
myapp/project.properties
myapp/res/
myapp/src/com/magic/package/Foo.java
myapp/tests/java/com/magic/package/test/FooTest.java

换句话说,除了tests/ 之外的遗留项目结构。我还尝试将任意 AndroidManifest.xml 添加到 myapp/tests/,尽管 the doc 说不这样做,只是作为测试。但是,我没有运气。

我的buid.gradle 看起来像:

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

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile project('stuff')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

如果我删除 uses-feature,测试将运行,但如果可能的话,我想避免这种情况。

【问题讨论】:

    标签: android google-maps testing gradle


    【解决方案1】:

    无法提供自定义属性,但看起来合并已损坏。我得调查一下。

    更新:根据google bug filed for this,此问题已通过新的清单合并修复。来自manifest merger user guide

    这个新的合并是在插件的 0.10 版本中引入的。从 0.11 开始,gradle 插件默认使用此工具。

    【讨论】:

    猜你喜欢
    • 2014-03-21
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多