La aplicación Phonegap se cierra después de que la cámara capture la imagen.
Estoy recibiendo un error con Phonegap 1.4.1.
La aplicación de phonegap que creo se reinicia después de que regrese a la aplicación después de tomar una foto.
- Falló al crear tarea o tipo checkenv Causa El nombre es indefinido
- ¿Cómo navegar una página a otra página en android phonegap?
- ¿Por qué el audio subido está dañado cuando la subida es claramente exitosa?
- ¿Cómo puedo actualizar archivos de activos (js css images) en phonegap android app sin actualizar mi aplicación en play / app store
- Inicia sesión con Twitter en la aplicación de phonegap
Aquí está el código que estoy usando:
function capturePhoto() { // Take picture using device camera and retrieve image as base64-encoded string navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI }); } function onPhotoURISuccess(imageURI) { // Uncomment to view the image file URI // console.log(imageURI); // Get image handle // var largeImage = document.getElementById('largeImage'); // Unhide image elements // largeImage.style.display = 'block'; // Show the captured photo // The inline CSS rules are used to resize the image // largeImage.src = imageURI; }
- Salir Phonegap-Android prueba de la aplicación en el botón de salida?
- Comunicación entre PhoneGap, dispositivo externo usb y modo host Android
- Manera correcta de almacenar la autenticación en una aplicación Phonegap
- Navigator.geolocation.getCurrentPosition siempre obtiene el tiempo de espera en Android hasta que GPS / Location esté desactivado
- Problema de PhoneGap 2.5.0
- ScrollTop no funciona en móviles Android
- Cordova PushPlugin - No se puede recibir notificación de GCM en android si la aplicación no se está ejecutando
- "Error; spawn cmd ENOENT "en iónico (comando de android de construcción iónica)
Yo estaba teniendo el mismo problema durante 2 días hasta que la fuente que debe tener acceso al permiso de obtener el archivo de imagen que tomó en el dispositivo. Por defecto no hay permiso de devolver la imagen por lo que devuelve null y su aplicación se bloquea.
Si está utilizando Cordova / PhoneGap en XCode, también debe crear el archivo Config.xml en la carpeta www y dar permiso para acceder al archivo de imagen.
<feature name="http://api.phonegap.com/1.0/device" /> <feature name="http://api.phonegap.com/1.0/battery"/> <feature name="http://api.phonegap.com/1.0/camera"/> <feature name="http://api.phonegap.com/1.0/contacts"/> <feature name="http://api.phonegap.com/1.0/file"/> <feature name="http://api.phonegap.com/1.0/geolocation"/> <feature name="http://api.phonegap.com/1.0/media"/> <feature name="http://api.phonegap.com/1.0/network"/> <feature name="http://api.phonegap.com/1.0/notification"/>
Si está trabajando en Android, dé permiso en el archivo AndroidManifest.xml.
Puede encontrar todo para el archivo config.xml aquí: https://build.phonegap.com/docs/config-xml
Utilizar foreground-camera-plugin su voluntad de arreglar este problema:
https://code.google.com/p/foreground-camera-plugin/
Puede ser su memoria móvil no es suficiente, Este problema no es en realidad Phonegap. Es un problema común en las aplicaciones androides nativas también. Se produce porque cuando se dispara la cámara, la actividad de androide va de fondo (estado onStop), esperando a que la cámara tome la fotografía. Entonces el GC viene y mata la actividad para liberar memoria antes de la conclusión de la acción de la cámara, y cuando la cámara está terminada tu actividad ya ha muerto. Es por eso que la aplicación se reinicia.
Aquí está mi sugiere
1. Cambiar el plugin cramer, evitar el uso de plug-ins personalizados iniciar la recolección de basura, ( http://code.google.com/p/foreground-camera-plugin/ , http://code.google.com/p/foreground- Galería- plugin /) 2. Detecta la memoria si es insuficiente para matar otros procesos, la memoria de liberación activa 3. Mejorar su supervivencia, tratar de evitar la liberación de memoria en el sistema seleccionado.
private void clearMemory(boolean killAll) { mklog("当前系统可用内存大小是:" + getAvailMemory(getApplicationContext())); ActivityManager activityManger = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> list = activityManger .getRunningAppProcesses(); if (list != null) for (int i = 0; i < list.size(); i++) { ActivityManager.RunningAppProcessInfo apinfo = list.get(i); System.out.println("pid " + apinfo.pid); System.out.println("processName " + apinfo.processName); System.out .println("importance " + apinfo.importance); String[] pkgList = apinfo.pkgList; if (apinfo.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND || (killAll && apinfo.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICE)) { // Process.killProcess(apinfo.pid); for (int j = 0; j < pkgList.length; j++) { activityManger.killBackgroundProcesses(pkgList[j]); mklog("准备杀死进程:" + pkgList[j]); } } } mklog("清理之后 当前系统可用内存大小是:" + getAvailMemory(getApplicationContext())); } private long getAvailMemory(Context context) { ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); MemoryInfo mi = new MemoryInfo(); am.getMemoryInfo(mi); return mi.availMem / (1024 * 1024); } public void mklog(String contentString) { Log.i("Web Console", contentString); }
Asegúrese de que su etiqueta de actividad en AndroidManifest.xml tiene el siguiente atributo:
android:configChanges="orientation|keyboardHidden"
El cambio de orientación hará que la aplicación se vuelva a cargar. Si realmente está recibiendo un error, ejecute "adb logcat" para capturar el error que está ocurriendo.
Este problema no es en realidad Phonegap. Es un problema común en aplicaciones nativas de Android también.
Ver la cámara de PhoneGap reinicia la aplicación
Bajar a 25 y usar <preference name="android-minSdkVersion" value="7" />
me ayudó!
Para mí, el truco era modificar el manifiesto de:
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="14"/>
a
<uses-sdk android:minSdkVersion="7" />
Ahora funciona, pero no tengo ni idea de por qué …
Tengo una nota de Samsung Galaxy II. Yo tuve el mismo problema. He cambiado esto en el AndroidManifest.xml y ahora funciona en Samsung y HTC Thunderbolt
<uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/> <activity android:configChanges="orientation|keyboardHidden" />
DATA_URI no se recomienda a veces, no vuelve a la aplicación. Porque DATA_URI da cadena base64, por lo que algunos dispositivos no tienen suficiente memoria para esto. Utilice FILE_URI solamente, es seguro para el dispositivo android.
Si usted necesita la cadena de Base64 significa que encubierto después de la captura de llamadaSucceso usando Archivo readAsDataURL
Ref este enlace
Intente bajar el parámetro de calidad a 25. Algunos dispositivos no tienen suficiente memoria para 50.
- Consejos sobre dibujo de alto rendimiento en Android
- ¿Cuál es la diferencia entre la contraseña de la tienda de claves y la clave de contraseña en la certificación de la firma de Android?