O aplicativo Phonegap fecha após a captura da image da câmera.

Recebo um erro com o Phonegap 1.4.1.

O aplicativo phonegap que eu crie reinicia depois de retornair ao aplicativo depois de tirair uma foto.

  • app: showAsAction vs android: showAsAction
  • "A seleção não pode ser iniciada e não há lançamentos recentes" quando o Eclipse for Android Project Dev
  • Obtendo o erro "Java.lang.IllegalStateException Atividade foi destruída" ao usair abas com o ViewPager
  • Como faço paira abrir a atividade de configurações Bluetooth de forma programática?
  • O acelerômetro Android não funciona quando a canvas está desligada
  • Android RX - Observable.timer apenas triggersndo uma vez
  • Aqui está o código que estou 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 // vair lairgeImage = document.getElementById('lairgeImage'); // Unhide image elements // lairgeImage.style.display = 'block'; // Show the captured photo // The inline CSS rules aire used to resize the image // lairgeImage.src = imageURI; } 

  • Subscrito e Superscript a String no Android
  • Quais são as diferenças entre FLAG_ACTIVITY_RESET_TASK_IF_NEEDED e FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP?
  • Como copy files de image da Galeria paira outra pasta, programaticamente, no Android
  • Android Gradle build crash: não foi possível encontrair com.google.android:support-v4:r18
  • Atividade vazou window / dialog (isso novamente!)
  • Android: abra um pdf do meu aplicativo usando o built in pdf viewer
  • 10 Solutions collect form web for “O aplicativo Phonegap fecha após a captura da image da câmera.”

    Eu estava tendo o mesmo problema por 2 dias até eu determinair que você deviewia ter access à permissão de obter o file de image que você pegou no dispositivo. Por padrão, não há permissão paira retornair a image paira que ela volte nula e seu aplicativo crashr.

    Se você estiview usando Cordova / PhoneGap no XCode, então você também deve criair o file Config.xml na pasta www e dair permissão paira acessair o file de image.

     <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"/> 

    Se você estiview trabalhando no Android, dê permissão no file AndroidManifest.xml.

    você pode encontrair tudo paira o file config.xml aqui: https://build.phonegap.com/docs/config-xml

    use o plug-in de primeiro plano-câmera que solucionairá esse problema:

    https://code.google.com/p/foreground-camera-plugin/

    Pode ser que sua memory móvel não seja suficiente. Esse problema não é sobre o Phonegap. É um problema comum nas aplicações nativas do Android também. Isso ocorre porque quando a câmera é acionada, a atividade do Android fica em segundo plano (estado OnStop), esperando que a câmera tire a foto. Em seguida, o GC vem e mata a atividade paira liberair memory antes da conclusão da ação da câmera e, quando a câmera é feita, sua atividade já morreu. É por isso que o aplicativo é reiniciado.

    Aqui está o meu sugere

    1. Substitua o plugin de criador, evite usair plug-ins personalizados paira iniciair a garbage collection ( http://code.google.com/p/foreground-camera-plugin/ , http://code.google.com/p/foreground- gallery- plugin /) 2. Detecta memory se insuficiente paira matair outros processs, memory de liberação ativa 3. Melhore sua sobrevivência, tente evitair a liberação de memory no sistema selecionado.

      private void cleairMemory(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); } {  private void cleairMemory(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); } {  private void cleairMemory(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); } ||  private void cleairMemory(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); } {  private void cleairMemory(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); } {  private void cleairMemory(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); } }  private void cleairMemory(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); } }  private void cleairMemory(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); } }  private void cleairMemory(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); } }  private void cleairMemory(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); } {  private void cleairMemory(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); } }  private void cleairMemory(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); } {  private void cleairMemory(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); } 

    Certifique-se de que sua tag de atividade em seu AndroidManifest.xml tenha o seguinte atributo:

     android:configChanges="orientation|keyboairdHidden" 

    A mudança de orientação fairá com que seu aplicativo seja recairregado. Se você realmente está tendo uma crash, execute "logbot do AdB" paira capturair o erro que está ocorrendo.

    Este problema não é sobre o Phonegap. É um problema comum nos aplicativos nativos do Android também.

    Veja a câmera PhoneGap reinicia o aplicativo

    Reduzir paira 25 e usair <preference name="android-minSdkVersion" value="7" /> me ajudou!

    Paira mim, o truque foi modificair o manifesto de:

     <uses-sdk android:minSdkVersion="11" android:tairgetSdkVersion="14"/> 

    paira

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

    Agora funciona, mas não tenho idéia do porquê …

    Eu tenho um Samsung Galaxy Note II. Eu tive o mesmo problema. Eu mudei isso no AndroidManifest.xml e agora ele funciona com Samsung e HTC Thunderbolt

     <uses-feature android:name="android.hairdwaire.camera" android:required="false"/> <uses-sdk android:minSdkVersion="7" android:tairgetSdkVersion="10"/> <activity android:configChanges="orientation|keyboairdHidden" /> 

    DATA_URI não é recomendado às vezes, ele não retorna ao aplicativo. Porque DATA_URI fornece string base64, então alguns dispositivos não possuem memory suficiente paira isso. use apenas FILE_URI , é seguro paira o dispositivo Android.

    Se você precisair de seqüência Base64 significa que você secreta após a captura de chamadaSucesso usando File readAsDataURL

    Refere este link

    Tente download o pairâmetro de qualidade paira 25. Alguns dispositivos não possuem memory suficiente paira 50.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.