2015-04-01 15 views

risposta

11

Una soluzione quello che ha funzionato per noi è stato farlo con un Hook Cordova/PhoneGap.

Creare un gancio nel seguente percorso

{app-root}/hooks/after_prepare directory/010-update-android-manifest.js

importante per rendere questo file eseguibile

chmod +x 010-update-android-manifest.js

#!/usr/bin/env node 

var fs = require('fs'); 
var async = require('async'); 
var exec = require('child_process').exec; 
var path = require('path'); 

var root = process.argv[2]; 
var androidManifest = path.join(root, 'platforms/android/AndroidManifest.xml'); 
fs.exists(path.join(root, 'platforms/android'), function(exists) { 
    if(!exists) return; 
    fs.readFile(androidManifest, 'utf8', function(err, data) { 
     if(err) throw err; 

     var lines = data.split('\n'); 
     var searchingFor = '<application android:hardwareAccelerated="true"'; 
     var newManifest = []; 
     var largeHeap = 'android:largeHeap="true"'; 
     lines.forEach(function(line) { 
      if(line.trim().indexOf(searchingFor) != -1 && line.trim().indexOf(largeHeap) == -1) { 
       newManifest.push(line.replace(/\>$/, ' ') + largeHeap + ">"); 
      } else { 
       newManifest.push(line); 
      } 
     }); 

     fs.writeFileSync(androidManifest, newManifest.join('\n')); 
    }); 
}); 

Questo aggiungerà android: largeHeap = "true" al tag dell'applicazione.

creare l'app

cordova build

+1

Grazie mille. Per utilizzare questa in Visual Studio 2015, ho dovuto cambiare "root" e rimuovere "asincrona" (che non è stato utilizzato in ogni caso) 'var root = path.join (__ dirname, "..");' e in config.xml ho aggiunto '' all'interno '' Proprio commentando perché ero perso come aggiungerlo io stesso. –

+0

troppo tardi per la festa, ma: perché non basta aggiungere l'attributo android: largeHeap = "true" a paltforms/android/AndroidManifest.xml? –

1

Con PhoneGap costruire è possibile utilizzare il seguente

<gap:config-file platform="android" parent="/manifest"> 
    <application android:largeHeap="true"></application> 
</gap:config-file> 

Ciò richiede che anche si aggiunge il XMLNamespace Android per il vostro elemento widget di

xmlns:android="http://schemas.android.com/apk/res/android" 

(per ulteriori informazioni vedi http://phonegap.com/blog/2014/01/30/customizing-your-android-manifest-and-ios-property-list-on-phonegap-build/)

Problemi correlati