我在Android Studio中为自己的口味定义两个不同的清单文件时遇到问题。这是我当前的项目结构:
该AndroidManifest.xml
在free
味道如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="se.example.package">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</manifest>
该AndroidManifest.xml
在main
味道没有用途的权限,但其中包含的是所有口味之间共享清单代码的其余部分。
该AndroidManifest.xml
在pro
味道如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="se.example.package">
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
</manifest>
build.gradle定义了两种风格,例如
productFlavors {
free {
applicationId 'se.example.package.free'
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName '1.0'
}
pro {
minSdkVersion 14
applicationId 'se.example.package.pro'
targetSdkVersion 21
versionCode 2
versionName '1.1'
}
}
我期望的结果是不同的口味定义了不同的使用权限。不是这种情况。当前的结果是,这两种风味仅定义了pro风味中<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
定义的AndroidManifest.xml
。
我试过了:
- 清洁项目
- 重建项目
- 重新启动Android Studio
- 同步gradle
但是没有成功。我该如何解决?任何帮助表示赞赏。
编辑1
我将每个风味AndroidManifest.xml
文件的位置从每个res
文件夹更改为free
和pro
文件夹。结果:
- Pro Favourite会显示预期的许可证许可。
- 免费版本显示来自
AndroidManifest.xml
文件,许可证和网络权限的权限(应仅是网络)
感觉就像是项目结构的问题。该怎么做?
编辑2
我按照Commonsware的提示提取了合并报告,这些是有关 uses-permissions
自由:
uses-permission#com.android.vending.CHECK_LICENSE
ADDED from qwknoteGIT:licencing-library:unspecified:26:5
android:name
ADDED from qwknoteGIT:licencing-library:unspecified:26:22
优点:
uses-permission#com.android.vending.CHECK_LICENSE
MERGED from qwknoteGIT:licencing-library:unspecified:26:5
tools:node
声明工具