android - 为 gradle 生成的 AndroidManifest 指定额外的 XML

标签 android google-maps testing gradle

是否可以为 gradle 生成的 AndroidManifest 指定额外的 XML 字段。具体来说,用例是我有一个使用谷歌地图的应用程序,并且根据 their documentation ,应用必须指定:

<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,测试将会运行,但我想尽可能避免这种情况。

最佳答案

无法提供自定义属性,但看起来合并已中断。我必须调查一下。

更新:根据 google bug filed for this ,这已通过新的 list 合并得到解决。来自manifest merger user guide

This new merger was introduced in version 0.10 of the plugin. As of 0.11, this tool is used by default by the gradle plugin.

关于android - 为 gradle 生成的 AndroidManifest 指定额外的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17354716/

相关文章:

java - Opengl es 与 obj 加载器失真

android - 如何将openssl集成到Android中?

javascript - 使用 PhoneGap 和 googlemaps 插件更新位置跟踪的标记位置

javascript - Angular Google map 模块无法加载

java - Android 截图 - 部分黑色谷歌地图

c - 如果有任何未发现的错误,如何测试字数统计程序?

android - setDrawSliceText(boolean) 已弃用

android - 首次启动需要很长时间(ClassLoader 引用了未知路径)

python - 使用 py.test xdist 控制测试的分布

testing - 对于 Twitter ,如何创建测试用户帐户?