如何添加android:largeHeap =" true"在使用phonegap插件中的Plugin.xml文件的清单文件中

时间:2015-04-01 06:55:15

标签: android cordova plugins

如何使用android phonegap中的plugin.xml文件在清单文件中将android:largeHeap添加为true

2 个答案:

答案 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" 

(有关详细信息,请参阅http://phonegap.com/blog/2014/01/30/customizing-your-android-manifest-and-ios-property-list-on-phonegap-build/