Domanda

Cercando di impostare l'orientamento nel file manifest, utilizzando una stringa qualifier

android:screenOrientation="@string/orientation"

Funziona su un 4.0 tablet asus, ma non sia un 2.1 wildfire e 4.1 Galaxy S.Il problema è infatti il collegamento a una risorsa, Se il ritratto è digitato funziona.

Ho provato a cambiare le qualificazioni usato il tablet per testare il telefono.Questo significa che il codice stesso esatto, risorse e layout sono utilizzati per tutti i dispositivi.Così non può essere errori di ortografia o per problemi di compilazione.Ma ancora non funziona sui telefoni e non il tablet.Questo sembra essere ancora un altro bug in android.

Dà il seguente errore, nulla nel logcat

Installation error: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Please check logcat output for more details.
Launch canceled!

Manifesto di sezione

<activity
    android:name=".MainActivity"
        android:screenOrientation="@string/orientation"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

So che posso fare a livello di programmazione.Ma c'è un altro problema con il wildfire, non riavviare subito.Invece l'attesa per le viste essere il programma di installazione etc.Questo non si verifica in altri dispositivi.

Cercato su google e ho trovato un paio di altri, usando i metodi, ma essi non sembrano avere scoperto di eventuali problemi.http://capdroid.wordpress.com/2012/07/21/different-screen-orientation-on-different-screen-size

Grazie

È stato utile?

Soluzione

Cercando di impostare l'orientamento nel file manifest, utilizzando una stringa qualifier

Mentre è una stringa quando si digita nel tuo editor, per quanto ne so è effettivamente memorizzato come un numero intero sistema, e quindi la conversione da una risorsa di tipo stringa è improbabile che sia affidabile.Francamente, mi sono sorpreso che funziona su quella tavoletta -- produttore del dispositivo potrebbe aver aggiunto il supporto per questo a gestire uno di loro app.

Mentre è possibile utilizzare risorse di tipo stringa nel manifesto, di cui hanno bisogno per essere le cose che verranno memorizzati come stringhe (ad esempio, android:label).

Si potrebbe essere in grado di ottenere questo lavoro con un numero intero di risorse, la ricerca di valori per le costanti (probabilmente la stessa come Java equivalenti).

Questo sembra essere ancora un altro bug in android.

A me, questo sembra essere ancora un altro posto in cui uno sviluppatore di andare oltre i limiti di un documentato comportamento, poi vi chiedete perché privi di documenti comportamento non funziona.

Altri suggerimenti

Ho avuto lo stesso problema, e ho risolto utilizzando un valore intero, invece di un valore di stringa e orientamento in "onCreate" metodo:

Esempio:

values/strings.xml

<resources>

    <integer name="orientation">1</integer>
...

values-sw600dp/strings.xml

<resources>
     <integer name="orientation">0</integer>
</resources>

Quindi, in onCreate:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        this.setRequestedOrientation(getResources().getInteger(R.integer.orientation));

Ogni orientamento ha un valore integer, vedi questa pagina per ulteriori dettagli: http://developer.android.com/reference/android/R.attr.html#screenOrientation

Leggi l' sviluppatore ufficiale del documento per identificare la notazione modulo sono indicati da stringhe, da mettere in una stringa risorsa darà l'errore di analisi, come indicato nel por della domanda.

E no, non vorrei saltare a conclusioni in classifica come un "bug", per ognuno e per loro, alcuni produttori sono liberi di implementare il proprio meccanismo per gestire e altri stick per Google modo il codice sorgente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top