2012-10-15 5 views
1

Bonjour je travaille dans PhoneGap Android et ai publié une application qui fonctionnera sous Android 2.3.3 à la fois sur un appareil virtuel et sur un appareil réel. Cependant, l'application ne pourra même pas passer la première page de l'application lorsqu'elle est exécutée sur Android 4.1 à la fois sur un périphérique virtuel et sur un périphérique réel. Je ne sais pas ce qui pourrait être mauvais car j'ai placé chaque morceau de code dans les blocs try et aucun d'entre eux n'est déclenché et l'application fonctionne très bien dans les versions plus anciennes.PhoneGap - Ne fonctionne pas sur les nouveaux appareils

Ceci est mon logcat sous Android 4,1

10-14 22:48:53.502: I/CordovaLog(871): Changing log level to DEBUG(3) 
10-14 22:48:53.502: I/CordovaLog(871): Found preference for useBrowserHistory=false 
10-14 22:48:53.512: D/CordovaLog(871): Found preference for useBrowserHistory=false 
10-14 22:48:53.562: D/JsMessageQueue(871): Set native->JS mode to 1 
10-14 22:48:53.694: D/DroidGap(871): DroidGap.init() 
10-14 22:48:53.822: D/CordovaWebView(871): DroidGap.loadUrl(file:///android_asset/www/splash.html, 10000) 
10-14 22:48:53.822: D/DroidGap(871): onMessage(splashscreen,show) 
10-14 22:48:54.202: D/dalvikvm(871): GC_FOR_ALLOC freed 87K, 3% free 8080K/8259K, paused 335ms, total 339ms 
10-14 22:48:54.312: I/dalvikvm-heap(871): Grow heap (frag case) to 9.111MB for 1228816-byte allocation 
10-14 22:48:54.522: D/dalvikvm(871): GC_FOR_ALLOC freed 1K, 3% free 9278K/9479K, paused 201ms, total 201ms 
10-14 22:48:55.032: D/dalvikvm(871): GC_CONCURRENT freed 4K, 3% free 9283K/9479K, paused 102ms+77ms, total 440ms 
10-14 22:48:56.101: D/CordovaWebView(871): >>> loadUrl(file:///android_asset/www/splash.html) 
10-14 22:48:56.101: D/PluginManager(871): init() 
10-14 22:48:56.141: D/CordovaWebView(871): >>> loadUrlNow() 
10-14 22:48:56.141: D/DroidGap(871): Resuming the App 
10-14 22:48:56.192: I/Choreographer(871): Skipped 33 frames! The application may be doing too much work on its main thread. 
10-14 22:48:56.532: D/SoftKeyboardDetect(871): Ignore this event 
10-14 22:48:56.802: I/Choreographer(871): Skipped 75 frames! The application may be doing too much work on its main thread. 
10-14 22:48:56.973: D/gralloc_goldfish(871): Emulator without GPU emulation detected. 
10-14 22:48:57.764: D/SoftKeyboardDetect(871): Ignore this event 
10-14 22:48:59.602: D/DroidGap(871): onMessage(onPageStarted,file:///android_asset/www/splash.html) 
10-14 22:49:06.772: D/SoftKeyboardDetect(871): Ignore this event 
10-14 22:49:16.172: E/CordovaWebView(871): CordovaWebView: TIMEOUT ERROR! 
10-14 22:49:16.172: D/Cordova(871): CordovaWebViewClient.onReceivedError: Error code=-6 Description=The connection to the server was unsuccessful. URL=file:///android_asset/www/splash.html 
10-14 22:49:16.232: D/DroidGap(871): onMessage(onReceivedError,{"errorCode":-6,"url":"file:\/\/\/android_asset\/www\/splash.html","description":"The connection to the server was unsuccessful."}) 
10-14 22:49:16.764: I/Choreographer(871): Skipped 131 frames! The application may be doing too much work on its main thread. 
10-14 22:49:16.764: D/SoftKeyboardDetect(871): Ignore this event 
10-14 22:49:17.321: D/Cordova(871): onPageFinished(file:///android_asset/www/splash.html) 
10-14 22:49:17.332: D/CordovaWebView(871): >>> loadUrlNow() 
10-14 22:49:17.364: D/DroidGap(871): onMessage(onNativeReady,null) 
10-14 22:49:17.364: D/DroidGap(871): onMessage(onPageFinished,file:///android_asset/www/splash.html) 
10-14 22:49:17.386: I/Choreographer(871): Skipped 112 frames! The application may be doing too much work on its main thread. 
10-14 22:49:49.262: D/DroidGap(871): Paused the application! 
10-14 22:49:50.032: W/IInputConnectionWrapper(871): showStatusIcon on inactive InputConnection 
10-14 22:49:51.446: D/DroidGap(871): onDestroy() 
10-14 22:49:51.446: D/CordovaWebView(871): >>> loadUrlNow() 
10-14 22:49:51.472: D/CordovaWebView(871): >>> loadUrlNow() 
10-14 22:49:51.642: D/DroidGap(871): onMessage(onPageStarted,about:blank) 
10-14 22:49:51.682: W/System.err(871): java.net.SocketException: Socket closed 
10-14 22:49:51.682: W/System.err(871): at libcore.io.Posix.accept(Native Method) 
10-14 22:49:51.702: W/System.err(871): at libcore.io.BlockGuardOs.accept(BlockGuardOs.java:55) 
10-14 22:49:51.702: W/System.err(871): at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:98) 
10-14 22:49:51.702: W/System.err(871): at java.net.ServerSocket.implAccept(ServerSocket.java:202) 
10-14 22:49:51.702: W/System.err(871): at java.net.ServerSocket.accept(ServerSocket.java:127) 
10-14 22:49:51.702: W/System.err(871): at org.apache.cordova.CallbackServer.run(CallbackServer.java:195) 
10-14 22:49:51.702: W/System.err(871): at java.lang.Thread.run(Thread.java:856) 
10-14 22:49:52.302: D/Cordova(871): onPageFinished(about:blank) 
10-14 22:49:52.312: D/DroidGap(871): onMessage(onPageFinished,about:blank) 
10-14 22:49:52.312: D/DroidGap(871): onMessage(exit,null) 

Toute aide serait grandement appréciée.

Merci.

EDIT:

J'utilise la version PhoneGap: cordova-2.1.0.js

Grâce à une lecture plus j'ai également ajouté cette ligne à mon MainActivity.java

super.setIntegerProperty("loadUrlTimeoutValue", 60000); 

Et a également changé le délai de connexion ADB à 10000 de 5000

Voici mon fichier manifeste

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.game.demo" 
android:versionCode="2" 
android:versionName="1.1" > 

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="15" /> 

<supports-screens 
android:largeScreens="true" 
android:normalScreens="true" 
android:smallScreens="true" 
android:resizeable="true" 
android:anyDensity="true" /> 

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 
+0

quel est votre PhoneGap vesrion? – Aamirkhan

+0

À quoi ressemblez-vous? Il semble que le CallbackServer ne peut pas créer de socket. –

+0

J'ai mis à jour mon article original avec la version phonegap et une copie de mon fichier manifeste. – user1017063

Répondre

0

Peut être ce link vous aidera à vérifier qu'il

Attention: À partir de Android 3.2 (niveau API 13), le screen size change aussi lorsque l'appareil passe entre portrait et paysage.

Ainsi, si vous voulez éviter le redémarrage d'exécution en raison du changement d'orientation lors du développement pour le niveau de l'API 13 ou plus (tel que déclaré par les attributs minSdkVersion et targetSdkVersion), vous devez inclure la valeur screenSize, en plus de la valeur « d'orientation » . C'est, vous devez decalare android:configChanges="orientation|screenSize". Cependant, si votre application cible le niveau d'API 12 ou inférieur, votre activité gère toujours cette modification de configuration elle-même (cette modification de configuration ne redémarre pas votre activité, même si elle est exécutée sur un périphérique Android 3.2 ou supérieur).

pour chaque activité ajouter le tag

android:configChanges="orientation|screenSize|keyboardHidden" 
+0

Merci pour le conseil sur les changements d'orientation après API 13, mais je ne suis pas sûr que ce soit le problème actuel que le premier écran ne chargera même pas. Donc je devine qu'il y a autre chose que je dois faire de mal. – user1017063

Questions connexes