2013-01-23 32 views
9

Mam obecnie problem z filtrowaniem Google Play i nową klasą gęstości xxhpdi, która została wprowadzona na poziomie interfejsu API 16. Moja aplikacja jest podzielona na 3 pliki APK (wiem, że to nie jest najlepsza praktyka, ale z powodu złego planowania, muszę to zrobić w tej chwili). Ciekawą częścią jest wersja dla Androida 4.0, tylko smartfony. Mam konfiguracji filtra rynku w AndroidManifest.xml takiego:Android - Google Play filtruje xxhdpi

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17"/> 
<compatible-screens> 
    <screen android:screenDensity="ldpi" android:screenSize="small"/> 
    <screen android:screenDensity="mdpi" android:screenSize="small"/> 
    <screen android:screenDensity="hdpi" android:screenSize="small"/> 
    <screen android:screenDensity="xhdpi" android:screenSize="small"/> 

    <screen android:screenDensity="ldpi" android:screenSize="normal"/> 
    <screen android:screenDensity="mdpi" android:screenSize="normal"/> 
    <screen android:screenDensity="hdpi" android:screenSize="normal"/> 
    <screen android:screenDensity="xhdpi" android:screenSize="normal"/> 
</compatible-screens> 

Problem jest teraz, że nowe urządzenia z ekranami 1080p, takich jak HTC Droid DNA nie widzą lub zainstaluj moją aplikację, bo nie określił że obsługuje także ekrany xxhdpi. Problemem jest to, bo mogę ustawić minSdkVersion API Level 14, która jest Android ICS, nie mogę po prostu dodać linię:

<screen android:screenDensity="xxhdpi" android:screenSize="normal"/> 

To dlatego, że poziom 14 API nie zna klasę xxhdpi. Czy istnieje jakieś rozwiązanie mojego problemu, bez konieczności tworzenia 4 oddzielnego pliku APK?

Dziękuję.

+0

Aby zacytować * Uwaga: Normalnie nie powinieneś używać tego elementu manifestu. Korzystanie z tego elementu może znacznie zmniejszyć potencjalną bazę użytkowników dla aplikacji, ponieważ nie pozwala użytkownikom zainstalować aplikacji, jeśli mają urządzenie z konfiguracją ekranu, której nie ma na liście. Powinieneś używać go tylko w ostateczności * z [SDK programisty] (http://developer.android.com/guide/topics/manifest/compatible-screens-element.html) – t0mm13b

+0

xxhdpi jest tylko w JB w górę AFAICT, w Krótko mówiąc, masz niestety szczęście. Najprościej byłoby pomyśleć, aby odbudować JB celowania, czyli API 20 lub 21, wtedy powinno to zrobić. – t0mm13b

+0

Helle, dziękuję za odpowiedź. Aplikacja kieruje już na JB MR1, ponieważ jest to poziom interfejsu API 17. Poziom API 14 to Android 4.0. – NiThDi

Odpowiedz

24

znalazłem rozwiązanie: Zamiast dodawania linii

<screen android:screenDensity="xxhdpi" android:screenSize="normal"/> 

do sekcji kompatybilnych ekranów, wydaje się, że wartość numeryczna działa tak dobrze:

<screen android:screenDensity="480" android:screenSize="normal"/> 
+0

Tak, tak samo jest z tvdpi i 213 (co jest istotne dla Nexusa 7) i nie ma to nic wspólnego z interfejsem API, na który celujesz, te stałe w ogóle nie istnieją. Powinieneś przyjąć swoją odpowiedź. – brillenheini

+0

Próbowałem wstawić wartość 480 zamiast xxhdpi, a podczas gdy aplikacja działa poprawnie, kiedy trafia do sklepu, nie jest pokazywana jako zgodna z Galaxy S4. Pomimo posiadania najnowszych aktualizacji Androida nadal nie mogę się skompilować - otrzymuję błędy opisane powyżej. – djbp

1

Wydaje się, że otwarty problem dotyczący tego problemu: code.google.com/p/android To jest do bani, ale nie mogę wymyślić lepszego rozwiązania.

Powiązane problemy