2015-04-23 23 views
25

Mam projekt Androida, który jest przeznaczony dla Androida SDK v21. Teraz muszę debugować go na urządzeniu z Androidem 4.4 (tj. SDK v20). Jak mam nakazać Androidowi Studio dołączenie starszej wersji źródła do klas wewnętrznych, aby móc przez nie przejść?Android Studio: jak zdebugować starszą wersję Androida SDK krok po kroku

+2

Może to być rozwiązanie tymczasowe: http : //stackoverflow.com/a/30054969/939193. –

+0

Widzę, że jeśli ustawisz compileSdkVersion na 20, używa ona źródła tylko z 20. –

+0

@miepressious, czy twój projekt jest na antenie, czyli na rynku googles? Czy możesz podać wyjątek, który otrzymujesz? czy to jest dla konkretnej marki (LG, Samsung itp.), na przykład Samsung zmienia system Android na swoich urządzeniach? Aby przeprowadzić debugowanie w niższej wersji, możesz zainstalować Genymotion i uruchomić na nim aplikację, gdy jesteś w trybie debugowania w studio Android. Darmowa wersja Genymotion zapewnia wsparcie dla wszystkich Android 4.0 i wyżej i myślę, że 2.2 jest również wliczony w cenę. Musisz wiedzieć, gdzie Twoja aplikacja ulega awarii, aby nie tracić cennego czasu. –

Odpowiedz

-1

Możesz utworzyć nowe urządzenie wirtualne z Androidem z preferowanym poziomem interfejsu API i debugować aplikację na nim.

+0

Występuje błąd w mojej aplikacji, który występuje tylko na Androida 4.4. Muszę przejść przez kod platformy, aby go prześledzić. –

+0

Co stanie się, gdy wystąpi błąd? Czy to się psuje? – Jan

+0

Opublikuj swój logcat, kiedy to się stanie. –

5

Nie mogę potwierdzić mojej odpowiedzi działa, ale działa dla mnie.

mogę wymienić mój compileSdkVersion, buildToolsVersion, minSdkVersion i targetSdkVersion z nowym jak po moim build.gradle pliku.

android { 
     compileSdkVersion 22 
     buildToolsVersion "22.0.1" 


defaultConfig { 
    applicationId "com.example.mytest" 
    minSdkVersion 15 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

Po zmianie, może nie być konieczna konwersja starego na nowy lub nowy na stary komponent SDK.

6

Najlepszym rozwiązaniem jest ustawienie zestawu SDK kompilacji na 20. Dzięki temu narzędzia do kompilacji będą kompilować projekt za pomocą pakietu SDK w wersji 20 i można debugować aplikację.

Setting Compile SDK version

Podczas korzystania z kilku modułów w projekcie trzeba ustawić tę samą wersję kompilacji SDK do każdego modułu.

+1

To nie zadziała dla żadnego projektu, który używa ostatnich API, ponieważ nie będzie już więcej kompilować ... – mbonnin

4

Musisz otworzyć ustawienia modułu (prawy przycisk na module aplikacji i wybierz Otwórz Ustawienia modułu lub po prostu wybierz moduł i naciśnij ⌘ + ↓ na Macu)

I wybrać compileSdk i buildTools do V20

Another sposobem na to jest otwarcie pliku build.gradle dla modułu "aplikacja", aby zmienić compileSdk i buildTools.

1

Chciałbym wyjaśnić trochę przed rozwiązaniem.

Google udostępnia interfejsy API SDK w postaci plików JAR (android.jar). Pliki JAR są przechowywane pod numerem SDK LOCATION\platforms\android-API#. Na przykład plik android.jar dla Androida 4.4 (Kitkat) API-19 znajduje się pod adresem YOUR SDK LOCATION\platforms\android-19\android.jar.

Kompilacja Gradle z Androidem Studio używa pola compileSdkVersion w build.gradle aby wybrać konkretny android.jar dla kompilacji.
Co to jest compileSdkVersion?

  • Wersja API, z którą aplikacja jest kompilowana.
  • Oznacza to, że można kompilować i używać funkcji API systemu Android zawartych w tej wersji interfejsu API
  • Wszystkie poprzednie funkcje wersji są również uwzględniane podczas kompilacji.
  • Jeśli spróbujesz użyć funkcji API 21, takiej jak public void openCamera (String cameraId, CameraDevice.StateCallback callback, Handler handler) Dodano na poziomie interfejsu API 21, ale ustawiono wartość compileSdkVersion na 20, pojawi się błąd kompilacji.
  • Jeśli ustawisz compileSdkVersion do 21 nadal można uruchomić aplikację na API 20 urządzeniu tak długo jak ścieżki wykonania swojej aplikacji nie należy próbować wywołać żadnych API specyficznych dla API 21.

Jak ustawić compileSdkVersion ? Istnieją dwa sposoby

compileSdkVerion
1. Wybór API z GUI

1) Wybierz "Plik-> struktury projektu ..."
2) Wybierz "app-> Właściwości"
3) Ustaw "Compile Sdk Verion" z rozwijanego menu na wymaganą wersję SDK.
4) "compileSdkVersion" zostanie ustawione automatycznie w pliku "build.gradle" modułu "aplikacja" o numerze .


2. Ustawianie API w pliku gradle.build

1) Otwórz plik "APP" moduł
2) Ustaw compileSdkVersion do wymaganej wartości, takich jak 19 do API # 19 build.gradle.



Mam nadzieję, że pomaga ... Szczęśliwy Coding ...

+0

To jest rozwiązanie tak. Jeśli spróbujesz to zrobić również przy użyciu biblioteki obsługi aplikacji appcompot, otrzymasz masywne błędy kompilacji. – vangorra

0

prostu otworzyć i zmienić ustawienia modułu compileSdk i buildTools do V20

Powiązane problemy