今天早些时候安装Android L开发者预览版SDK后,我想让我的应用程序兼容Android L和旧版本,如Jelly Bean。我的应用程序使用的是16的minSdkVersion,但是自从我尝试开发人员预览后,Android Studio似乎并不尊重我的minSdkVersion。我试图让我的应用程序在我的Galaxy Nexus(API 19)上运行,这是我得到的错误:
这是我的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.simon.holocountownapp"
android:versionCode="45"
android:versionName="4.1.1" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="L" />
...
这是我的build.gradle:
apply plugin: 'android'
android {
compileSdkVersion 'android-L'
buildToolsVersion '20'
defaultConfig {
minSdkVersion 16
targetSdkVersion 'L'
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
}
dependencies {
compile 'com.doomonafireball.betterpickers:library:1.5.2'
compile 'uk.co.androidalliance:edgeeffectoverride:1.0.1'
compile 'com.readystatesoftware.systembartint:systembartint:+'
compile "com.android.support:support-v4:+"
compile "com.android.support:support-v13:+"
}
答案 0 :(得分:4)
请参阅我的帖子/ r / AndroidDev here,它提供了一种解决方法。
答案 1 :(得分:3)
您正在使用此依赖项:
compile "com.android.support:support-v4:+"
通过这种方式,您在L-preview中使用 support-v4 (21-rc1)。
此支持lib声明minSdkVersion L
(您可以检查Manifest)。
你必须强制minSdkVersion为'L'(查看文档:{{3}})
在开发环境中,打开模块的build.gradle文件,并确保:
compileSdkVersion is set to 'android-L'
minSdkVersion is set to 'L'
targetSdkVersion is set to 'L'
这不是错误,但这是因为这些API不是最终的。这是一种阻止在最终API 21设备上安装应用程序或使用支持lib 21-r1在商店中发布应用程序的方法。
答案 2 :(得分:1)
在开发人员文档中说(http://developer.android.com/preview/setup-sdk.html):
在开发环境中,打开模块的build.gradle文件,并确保:
- compileSdkVersion设置为'android-L'
- minSdkVersion设置为“L”
- targetSdkVersion设置为“L”
似乎无法向后兼容(现在)。