Jef*_*man 17 android gradle android-manifest
我想meta-data根据产品风格定义不同的清单属性.我试着这样做,
src/
main/
AndroidManifest.xml
prod/
AndroidManifest.xml
dev/
AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
该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>
Run Code Online (Sandbox Code Playgroud)
这是我的理解,味道清单将与主要合并.在我的build.gradle中,我这样做,
android {
productFlavors {
prod {
manifest.srcFile "prod/AndroidManifest.xml"
}
dev {
manifest.srcFile "dev/AndroidManifest.xml"
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
然而,找到我尝试建立"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]
Run Code Online (Sandbox Code Playgroud)
谢谢.
小智 20
在gradle文件中,您无需定义清单的路径.
使用:
productFlavors{
prod {}
dev{}
}
Run Code Online (Sandbox Code Playgroud)
验证您的目录结构是否正确:在src目录下和每个目录中的每个flavor的名称为flavor的目录放置了覆盖清单文件.
Gradle将合并文件.
PS - 如果您的元数据标记位于应用程序标记内,您还应该在覆盖清单中应用应用程序标记.
| 归档时间: |
|
| 查看次数: |
8999 次 |
| 最近记录: |