2010-01-06 16 views
6

Mamy problem związany z plikiem manifestu i właściwością "android: minSdkVersion". Problem polega na tym, że jeśli nasza platforma ma 2.0 i używamy właściwości "android: minSdkVersion = 3" (3 = sdk 1.5), grafika ulegnie uszkodzeniu (w szczegółach, rozdzielczość aplikacji zostaje zmniejszona do 2/3 części oryginalnej rozmiar, to znaczy, gdy rozdzielczość ma wynosić 480x720, staje się 320x480). Dzieje się tak na emulatorze Androida i na urządzeniach Droid/Milestone (które są platformami 2.0). Po przełączeniu właściwości na "android: minSdkVersion = 4" (4 = sdk 1.6) problem zostaje rozwiązany, ale kiedy chcemy umieścić tę wersję na platformie 1.5, Android nie pozwala nam jej zainstalować. Pomoże nam to poznać każdy konflikt związany z grafiką w pakiecie 2.0 SDK lub dowolny znany problem związany z plikiem "android: minSdkVersion" w manifeście.Problemy z minSdkVersion 1.5

Dzięki!

Odpowiedz

5

Jeśli wybierzesz targetSdkVersion, a także minSdkVersion, Twoja aplikacja zacznie działać poprawnie na wszystkich platformach.

więc mieć wpis w swoim manifeście takiego:

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/> 

To jest określone w Android API Levels page in the Android Developer documentation.

+1

Działa, ale używając sdk 1.6 (kompilowaliśmy używając wersji 1.5 sdk). Dzięki za twoje healp !!! – Tebam

4

Zakładam, że jesteś specifying different assets for different screen densities używając katalogów takich jak res/drawable-mdpi, res/drawable-hdpi i tak dalej?

Android 1.6 (poziom API 4) była pierwszą wersję SDK do obsługi wielu gęstości ekranu, więc zna znaczenie tych nazw katalogów i tak może z powodzeniem wybrać właściwą rozciągliwej ze swoimi res folderów dla danego urządzenia jest to kontynuować.

Jeśli jednak uruchomisz aplikację opracowaną w ten sposób na urządzeniu z Androidem 1.5 (poziom API 3), to framework nie będzie wiedział, że powinien używać tylko zasobów o średniej rozdzielczości (ponieważ nie ma żadnych urządzeń z Androidem 1.5 z dowolnymi innymi niż średniimi ekranami DPI (AFAIK)). Tak więc w tym przypadku framework może ostatecznie wybierać pozornie losowo ze wszystkich dostępnych zasobów w pakiecie APK, niezależnie od tego, czy są przeznaczone do ekranów o wysokiej gęstości, ekranów o średniej gęstości, czy cokolwiek innego.

Jednak nie widziałem, aby działo się tak odwrotnie, tzn. Urządzenie 2.0 wydaje się wybierać miniatury lub zakładać inną gęstość ekranu.

Upewnię się, że Twój układ katalogowy res jest poprawny i że używasz odpowiednio density-independent measurements w każdym ze swoich układów.

Ale jeśli chcesz obsługiwać wiele rozdzielczości ekranu i gęstości i obsługuje urządzenia Android 1.5 w jednym pakiecie APK, to nie wierzę, że to możliwe.

+2

Możesz uniemożliwić systemowi Android 1.5 korzystanie z katalogów zasobów dla innych gęstości za pomocą specyfikatorów wersji. Przykład: "res/drawable-hdpi-v4". –

+0

Ach, ok, dzięki za to; Czytałem o tym ostatnio, ale nigdy nie zdawałem sobie sprawy, że modyfikator '-v4' (etc) istnieje od 1.5 lub nawet wcześniej. –

0

Dodaj ten tag w swoim AndroidManifest.xml, aby obsługiwać wiele gęstości ekranu.

<supports-screens 
android:largeScreens="true" 
android:normalScreens="true" 
android:smallScreens="true" 
android:anyDensity="false" />