5

Gradle で生成された AndroidManifest に追加の XML フィールドを指定することは可能ですか。具体的には、Googleマップを使用するアプリがあり、そのドキュメントによると、アプリは次を指定する必要があります。

<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/、ドキュメントにはそうではないと書かれています。しかし、私には運がありませんでした。

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と、テストは実行されますが、可能であればそれを避けたいと思います。

4

1 に答える 1