2012-01-28 18 views
21

Dưới đây là Manifest của tôi:ứng dụng PhoneGap tai nạn khi chuyển hướng ngay cả với AndroidManifest thay đổi

<?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> 

Tôi đang sử dụng PhoneGap 1.3.0 và jquerymobile.

Thiết bị thử nghiệm của tôi là Samsung Galaxy Tab 8.9 với HC v3.2.

Tôi đã đọc ALMOST mọi diễn đàn có cùng vấn đề. Nó vẫn thất bại khi tôi xoay màn hình.

Có cảnh báo ngay sau khi ứng dụng gặp sự cố trong chế độ gỡ lỗi: webcore: Không thể lấy veiwWidth sau bố cục đầu tiên.

Trả lời

42

Trong trường hợp của bạn, thuộc tính android:configChanges="orientation|screenSize|keyboardHidden" phải chuyển đến thẻ <activity> đầu tiên chứ không phải thẻ <application>.

Đối với những người khác có vấn đề tương tự, chỉ cần thêm screenSize đến android:configChanges="orientation|keyboardHidden" hoặc thay đổi thuộc tính android:minSdkVersion thành 12 trở xuống.

Một lời giải thích chi tiết hơn về hành vi này có thể được tìm thấy ở đây: http://groups.google.com/group/phonegap/msg/c771fffc4dd9daaf

+1

Tôi biết điều này là cũ, nhưng trong trường hợp của tôi, tôi đã phải đặt minSdkVersion * AND * targetSdkVersion thành giá trị thích hợp + configChanges để làm việc này. – Jrop

3

Đây là giải pháp của tôi Add "screensize" cho android: configChanges trong từng thẻ hoạt động (trong AnroidManifest.xml).

Như thế này:

android:configChanges="orientation|screenSize|keyboardHidden" 

Nó giải quyết vấn đề của tôi.

Các vấn đề liên quan