2013-01-23 24 views
9

Attualmente ho un problema con il filtro di Google Play e la nuova classe di densità xxhpdi, introdotta in API Livello 16. La mia app è divisa in 3 file APK (so che non è il buone pratiche, ma a causa di una cattiva pianificazione, devo farlo in questo momento al momento). La parte interessante è la versione per Android 4.0, solo per smartphone. devo filtro di mercato messa a punto in AndroidManifest.xml come questo:Android - Google Play che filtra 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> 

Il problema è ora, che i nuovi dispositivi con schermi 1080p come l'HTC Droid DNA non possono vedere o installare la mia applicazione, perché non è stato specificato che supporta anche gli schermi xxhdpi. Il problema è, perché ho impostato la mia minSdkVersion a livello di API 14, che è Android ICS, non posso semplicemente aggiungere la riga:

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

Questo è perché il livello di API 14 non conosce la classe xxhdpi. C'è qualche soluzione per il mio problema, senza dover creare un 4 ° file APK separato?

Grazie.

+0

Per citare * Attenzione: Normalmente, non si dovrebbe usare questo elemento manifest. L'uso di questo elemento può ridurre drasticamente la potenziale base di utenti per la tua applicazione, non consentendo agli utenti di installare l'applicazione se dispongono di un dispositivo con una configurazione dello schermo che non hai elencato. Dovresti utilizzarlo solo come ultima risorsa * da [SDK dello sviluppatore] (http://developer.android.com/guide/topics/manifest/compatible-screens-element.html) – t0mm13b

+0

xxhdpi è solo in JB verso l'alto AFAICT, in Insomma, sfortuna sei sfortunatamente. Il più semplice che vorrei pensare è ricostruire targettando JB, alias API 20 o 21, quindi dovrebbe farlo. – t0mm13b

+0

Helle, grazie per la risposta. L'app ha già come target JB MR1, poiché questo è il livello API 17. Il livello 14 dell'API è Android 4.0. – NiThDi

risposta

24

ho trovato la soluzione: Invece di aggiungere la riga

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

alla sezione compatibili schermi, sembra che il valore numerico funziona così:

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

Sì, è la stessa cosa con tvdpi e 213 (che è rilevante per il Nexus 7) e non ha nulla a che fare con l'API che stai bersagliando, queste costanti mancano del tutto. Dovresti accettare la tua risposta. – brillenheini

+0

Ho provato a mettere il valore di 480 in invece di xxhdpi, e mentre l'app è conforme correttamente, quando arriva al negozio, non viene mostrato come compatibile con il Galaxy S4. Pur avendo gli ultimi aggiornamenti da Android, non riesco ancora a compilare - ottengo gli errori come sopra delineati. – djbp

1

Sembra esserci un problema aperto relativo a questo problema: code.google.com/p/android Fa schifo ma non riesco a pensare a una soluzione migliore.

Problemi correlati