Jef*_*man 17 android gradle android-manifest
我想meta-data根据产品风格定义不同的清单属性.我试着这样做,
src/
  main/
    AndroidManifest.xml
  prod/
    AndroidManifest.xml
  dev/
    AndroidManifest.xml
该main清单是完整的,但prod和dev版本稀疏,仅包含元数据,
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.inventory"
          android:versionCode="1"
          android:versionName="1.0">
  <meta-data android:name="analytics"
             android:value="true"/>
</manifest>
这是我的理解,味道清单将与主要合并.在我的build.gradle中,我这样做,
android {
  productFlavors {
    prod {
      manifest.srcFile "prod/AndroidManifest.xml"
    }
    dev {
      manifest.srcFile "dev/AndroidManifest.xml"
    }
  }
  ...
}
然而,找到我尝试建立"assembleProdDebug",我明白了,
* What went wrong:
A problem occurred evaluating project ':Inventory'.
> No signature of method: org.gradle.api.java.archives.internal.DefaultManifest.srcFile() is applicable for argument types: (java.lang.String) values: [prod/AndroidManifest.xml]
谢谢.
小智 20
在gradle文件中,您无需定义清单的路径.
使用:
productFlavors{
 prod {}
 dev{}
}
验证您的目录结构是否正确:在src目录下和每个目录中的每个flavor的名称为flavor的目录放置了覆盖清单文件.
Gradle将合并文件.
PS - 如果您的元数据标记位于应用程序标记内,您还应该在覆盖清单中应用应用程序标记.
| 归档时间: | 
 | 
| 查看次数: | 8999 次 | 
| 最近记录: |