Phonegap android – evento deviceready no disparado

Había buscado en la web soluciones para mi problema y encontré muchos subprocesos relacionados, por desgracia, ninguna de las soluciones proporcionadas funciona para mi caso. ¡Soy nuevo en el desarrollo de Android y seguí la documentación encontrada en Apache Cordova ! Para la configuración.

Problema : El evento deviceready no se dispara, a continuación se muestran mis códigos y configuración junto con el registro de errores. Por favor, aconsejarme sobre lo que había hecho mal, gracias!

Emulador

AVD Device: nexus 7 Target: Android 4.2 Memory RAM: 512 

MainActivity.java

  package com.example.pollo; import android.os.Bundle; import org.apache.cordova.*; import android.app.Activity; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } } 

Index.html

  <html> <head> <title></title> <script src="cordova-2.2.0.js"></script> <script> function onLoad(){ console.log("Now Loading"); document.addEventListener("deviceready", myDeviceReadyListener, false); } function myDeviceReadyListener(){ console.log("Device ready"); navigator.notification.alert("Phone is ready!"); var myDiv = document.getElementById('props'); myDiv.innerHTML = 'Device Name: ' + device.name; } </script> </head> <body onload="onLoad()"> <h1>X App V.11</h1> <p id="props">Loading device properties...</p> </body> </html> 

AndroidManifest.xml

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.pollo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="17" /> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="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.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_VIDEO"/> <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.permission.BROADCAST_STICKY" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:name="com.example.pollo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

Configuración

 assets>www>cordova-2.2.0.js assets>www>index.html res>xml>config.xml AndroidManifest.xml libs>cordova-2.2.0.jar libs>android-support-v13.jar 

Logcat – Registro de errores

  12-31 01:50:58.323: E/Trace(659): error opening trace file: No such file or directory (2) 12-31 01:51:45.653: E/StrictMode(552): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d1b278 that was originally bound here 

El onLoad () se llama, pero el myDeviceReadyListener () no se llama ~ ¿Tiene algo que ver con el emulador que he elegido?

2 Solutions collect form web for “Phonegap android – evento deviceready no disparado”

Divertido, acaba de enfrentar el mismo problema ayer. Pasé horas depurando y todo lo que pude encontrar es que en la línea 6016 en cordova-2.2.0.js, la aplicación parece silenciosamente salir de la ejecución. ¿Por qué? No hay idea … no hay errores en los registros. Tal vez algunos nuevos permisos o algo por esas líneas.

De todos modos, después de perder muchas horas de depuración, empecé desde cero usando el tutorial PhoneGap. Me di cuenta de que en el momento en que se lanzó PhoneGap 2.2.0, que había utilizado el nivel de API 16, no 17 (que es lo que estaba usando y lo que está usando). Tan pronto como establecí el objetivo de la aplicación en el nivel 16 de la API, todo empezó a funcionar de nuevo.

Takeaway: establezca el nivel de API de destino de la aplicación en 16 (Android 4.1.2) por ahora y su aplicación recibirá el evento deviceready.

Asegúrese de que tiene instalada la versión correcta del nodo. Phonegap comprueba la versión de nodo durante la instalación pero si cambia a otra versión (más antigua) más adelante, falla silenciosamente en tiempo de compilación lo que de alguna manera provoca que el evento deviceready no se dispare.

  • Aplicaciones móviles independientes de la plataforma
  • ¿Cómo se desarrolla el desarrollo de plataformas móviles en la práctica hoy (año 2013)?
  • ¿Qué solución basada en plataformas móviles basada en Ruby utilizar?
  • Cómo construir una aplicación multiplataforma html5 para android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.