2012-01-28 4 views
21

Oto mój Manifest:PhoneGap app ulega awarii, gdy przełączane orientację nawet z AndroidManifest zmienia

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mappp.mobile" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <supports-screens 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:smallScreens="true" 
     android:resizeable="true" 
     android:anyDensity="true" 
    /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 

    <uses-permission android:name="android.hardware.camera" /> 
    <uses-permission android:name="android.hardware.camera.autofocus" /> 
    <uses-sdk android:minSdkVersion="13" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:debuggable="true" 
     android:configChanges="orientation|screenSize|keyboardHidden" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".MAppHDActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.phonegap.DroidGap" 
      android:label="@string/app_name" 
      android:configChanges="orientation|screenSize|keyboardHidden" > 
      <intent-filter> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Używam PhoneGap 1.3.0 i jquerymobile.

Moje urządzenie testowe to tablet Samsung Galaxy Tab 8.9 z HC v3.2.

Czytałem PRAWIE na każdym forum z tym samym problemem. Nadal nie działa, gdy obracam ekran.

Po awarii aplikacji w trybie debugowania pojawia się ostrzeżenie: webcore: Nie można uzyskać wartości veiwWidth po pierwszym układzie.

Odpowiedz

42

W twoim przypadku atrybut android:configChanges="orientation|screenSize|keyboardHidden" powinien przejść do pierwszego tagu <activity>, a nie do tagu <application>.

Dla innych osób mających podobne problemy po prostu dodaj screenSize do android:configChanges="orientation|keyboardHidden" lub zmień atrybut android:minSdkVersion na 12 lub niższy.

Bardziej szczegółowe wyjaśnienie tego problemu można znaleźć tutaj: http://groups.google.com/group/phonegap/msg/c771fffc4dd9daaf

+1

Wiem, że jest stary, ale w moim przypadku musiałem ustawić minSdkVersion * AND * targetSdkVersion na odpowiednie wartości + configChanges, aby to działało. – Jrop

3

Oto moje rozwiązanie Dodaj „Rozmiar ekranu” do androida: configChanges w każdym tagu aktywny (w AnroidManifest.xml).

Jak to:

android:configChanges="orientation|screenSize|keyboardHidden" 

się rozwiązać mój problem.

Powiązane problemy