2013-07-01 9 views
8

Mam starego P500 z najnowszym CM 7.2 Nightly, który jest z Gingerbread, konkretnie 2.3.7, który powinien być API 10, prawda? Pracuję nad app z poniższej linii w manifeście:INSTALL_FAILED_OLDER_SDK, gdy wygląda jak wersja pakietu SDK, powinna działać?

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" /> 

Jest to naprawdę podstawowe app gdzie tylko uprawnienie jest android.permission.RECORD_AUDIO iw sumie nie mogło być o wiele prostsze. Mam zainstalowaną platformę SDK dla wersji 2.3.3 API 10.

Nawet jeśli ustawię min i cel na 10 lub nawet niższy, to po zainstalowaniu i uruchomieniu nadal otrzymuję INSTALL_FAILED_OLDER_SDK. Bez względu na to, co próbuję, nie mogę go zainstalować.

Używam najnowszego Androida Studio (0.1.8 myślę) i Java 1.7u21. Aplikacja instaluje się dobrze na mojej CM 10.1 Galaxy S III, która jest 4.2.2.

+0

Po zrzuceniu 'Build.VERSION.SDK_INT' z urządzenia, jaka wartość jest zwracana? – CommonsWare

+0

Jeśli uruchomię 'adb shell grep ro.build.version.sdk = system/build.prop' otrzymuję' ro.build.version.sdk = 10'' –

+0

Spróbuj użyć 'Log' i zrzucając wartość z Javy, właśnie w walizka. – CommonsWare

Odpowiedz

20

Wyjaśniałem, co było przyczyną. Android Studio nie używa AndroidaManifest.xml do określenia sposobu budowania pliku APK. W katalogu projektu istnieje plik build.gradle, który mówi, co API zbudować dla i jest sprzeczne z AndroidManifest!

Oto fragment pliku:

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 17 
     targetSdkVersion 17 
    } 
} 

Jak tylko zmieniłem minSdkVersion do 10 zainstalowany w porządku. To była jedyna zmiana, którą musiałem wprowadzić.