如何使用android phonegap中的plugin.xml文件在清单文件中将android:largeHeap添加为true
答案 0 :(得分:13)
对我们有用的解决方案是使用Cordova / PhoneGap Hook进行此操作。
在以下路径中创建一个挂钩
{app-root}/hooks/after_prepare directory/010-update-android-manifest.js
使此文件可执行的重要性
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'));
});
});
这会将 android:largeHeap =&#34; true&#34; 附加到应用程序代码。
构建您的应用
cordova build
答案 1 :(得分:2)
使用Phonegap构建,您可以使用以下
<gap:config-file platform="android" parent="/manifest">
<application android:largeHeap="true"></application>
</gap:config-file>
这要求您还将android xmlnamespace添加到widget元素
xmlns:android="http://schemas.android.com/apk/res/android"