Android 23不生成用户权限元素的清单文件

Saa*_*ooq 3 android android-6.0-marshmallow

我有几个相互依赖的模块的项目,我们刚刚升级到目标android-23.

问题是,Manifest.permission.ACCESS_FINE_LOCATION当我<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>在AndroidManifest中使用时,应用程序似乎没有生成等属性.

但是,当我这样做时它确实产生了属性,<permission android:name="android.permission.ACCESS_FINE_LOCATION"/>但这似乎与我见过的任何和所有例子都不同.

作为参考,我们的版本是:

minSdkVersion = 18
compileSdkVersion = 23
targetSdkVersion  = 23
buildToolsVersion = "23.0.2"
Run Code Online (Sandbox Code Playgroud)

和支持库是 23.0.1

任何人遇到这个或有任何想法发生了什么?

更新 添加我看到的生成的文件内容build/generated/source/r/{flavor}/com/example/Manifest.java

public final class Manifest {
    public static final class permission {
        public static final String C2D_MESSAGE="com.example.permission.C2D_MESSAGE";
        public static final String RECEIVE_ADM_MESSAGE="com.example.permission.RECEIVE_ADM_MESSAGE";
        public static final String UA_DATA="com.example.permission.UA_DATA";
    }
}
Run Code Online (Sandbox Code Playgroud)

Jiy*_*ark 5

这是预期的.

当您添加<permission>清单时,您正在定义自己的权限.所以,这被添加到课堂上<your_package_name>.Manifest.

但是,当您添加<uses-permission>清单时,您没有定义新权限,而是指定您正在请求已由其他地方(通常不在您的应用程序中)定义的权限.因此,在这种情况下,权限不会添加到类中<your_package_name>.Manifest.相反,它可以在<package_defining_the_permission>.Manifest课堂上找到.对于ACCESS_FINE_LOCATION权限,它在名为的包中定义android:http://androidxref.com/6.0.1_r10/xref/frameworks/base/core/res/AndroidManifest.xml#540