迁移到API 23

时间:2016-04-26 18:00:10

标签: android android-6.0-marshmallow

我的Android应用程序目前使用API​​ 22:

compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
}
dependencies {
.......
compile 'com.android.support:support-v4:22.2.1'
.......

}

我想迁移到API 23:

compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
}
dependencies {
    .......
    compile 'com.android.support:support-v4:23.0.1'
    .......
}

所以基本上我需要保留旧版本的 targetSdkVersion 22 ,以便测试权限的某些差异,但是当我这样做时它会给我编译错误

....\build\intermediates\res\merged\debug\values-v23\values-v23.xml
Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(18) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

问题:是否可以保留targetSdkVersion 22?

3 个答案:

答案 0 :(得分:1)

您不需要保留targetSdkVersion 22. Android允许通过adb工具official doc管理运行时权限系统。

文档enter image description here

中的相关部分

答案 1 :(得分:1)

谢谢大家的头脑风暴 - 它最终起作用(代码18)。详细检查所有细节可以得到正确的构建。

compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
    // Enabling multidex support.
    multiDexEnabled true
}

.... compile 'com.android.support:support-v4:23.0.1'

使用targetSdkVersion 22的原因是看到PermissionChecker.checkSelfPermissioncontext.checkSelfPermission

之间的差异

答案 2 :(得分:1)

看起来问题出在其他地方,因为我让我的gradle文件看起来和你一样,我没有问题。你看过这篇文章:https://stackoverflow.com/a/26449172/5433709吗?