我的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?
答案 0 :(得分:1)
您不需要保留targetSdkVersion 22. Android允许通过adb工具official doc管理运行时权限系统。
中的相关部分答案 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.checkSelfPermission
和context.checkSelfPermission
答案 2 :(得分:1)
看起来问题出在其他地方,因为我让我的gradle文件看起来和你一样,我没有问题。你看过这篇文章:https://stackoverflow.com/a/26449172/5433709吗?