2013-06-27 24 views
5

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

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

回答

1

这是不可能提供自定义属性,但它看起来像合并被打破。我得看看它。

更新:google bug filed for this,这已通过新的清单合并器修复。并从manifest merger user guide

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

+0

我应该提交错误的地方进行跟踪呢? – abhishekmukherg

+0

请执行以下操作:https://code.google.com/p/android/issues/entry?template=Tools%20bug%20report –

+0

Thanks @Xav,[filed](https://code.google.com/ p/android/issues/detail?id = 57526) – abhishekmukherg