5

Po zainstalowaniu zestawu SDK Android L Developer Preview wcześniej, chciałem, aby moja aplikacja była kompatybilna zarówno z Androidem L, jak i starszymi wersjami, takimi jak Jelly Bean. Moja aplikacja używa minSdkVersion 16, ale od kiedy wypróbowałem programisty, Android Studio nie wydaje się respektować mojej minSdkVersion. Staram się, aby moje app do uruchomienia na moim Galaxy Nexus (API 19) i tu jest błąd pojawia się:Android Studio - nie można określić własnego minSdkVersion

enter image description here

Oto mój 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" /> 

... 

Oto mój 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

Android-Studio jest niesamowicie wadliwy, a teraz chcesz zainstalować nowy sdk w dniu 1? Będziesz mieć wiele problemów. – ChitownDev

+0

@ChitownDev Android Studio nie jest problemem. Biblioteki wsparcia w L-preview działają z minSdk = L (sprawdź ich manifest). Więc jeśli chcesz pracować z minSdk = 15, musisz zastąpić tę wartość. –

Odpowiedz

3

Używasz tę zależność:

compile "com.android.support:support-v4:+" 

w ten sposób używasz support-V4 w L-podgląd (21-RC1).

Ta pomocnicza biblioteka deklaruje minSdkVersion L (możesz sprawdzić Manifest).

Trzeba zmusić minSdkVersion być „L” (sprawdź Doc: http://developer.android.com/preview/setup-sdk.html)

Na środowisko programistyczne, otwórz plik build.gradle dla modułu i upewnij się, że:

compileSdkVersion is set to 'android-L' 
minSdkVersion is set to 'L' 
targetSdkVersion is set to 'L' 

To nie jest błąd, ale to dlatego, że te interfejsy API nie są ostateczne. Jest to sposób zapobiegania instalowaniu aplikacji na urządzeniu końcowym API 21 lub publikowaniu go w sklepie przy użyciu obsługi biblioteki 21-r1.

1

W dokumentacji dla programistów mówi (http://developer.android.com/preview/setup-sdk.html):

Na środowisko programistyczne, otwórz plik build.gradle dla modułu i upewnij się, że:

  • compileSdkVersion jest ustawiony na 'android-L'
  • minSdkVersion jest ustawiony na 'L'
  • targetSdkVersion jest ustawiony na 'L'

wydaje się, że nie może być wstecznie kompatybilny (teraz).

4

Zobacz mój post do/r/AndroidDev here, który zapewnia obejście tego problemu.

+0

Podczas tego treningu działa świetnie, odpowiedź tylko link jest zdecydowanie odradzane. Edytuj odpowiedź, aby opisać zawartość. – nhaarman

Powiązane problemy