我决定打开新问题,因为已经发布的问题都没有一个好的答案。
我需要更新 AndroidManifest.xml "from plugin.xml",以便 <application>
标记具有以下属性,以及它已经具有的属性:
android:name="mypackage"
怎么做?
谢谢
最佳答案
我遇到了同样的问题,我使用了 Cordova 钩子(Hook)来完成这项工作。
首先,编辑您的 config.xml
文件以添加 Hook :
<platform name="android">
<hook type="after_prepare" src="scripts/android_app_name.js" />
</platform>
创建一个名为 scripts/android_app_name.js
的文件(将其设置为可执行文件),然后在其中使用搜索/替换功能。它应该看起来像:
#!/usr/bin/env node
module.exports = function(context) {
var fs = context.requireCordovaModule('fs'),
path = context.requireCordovaModule('path');
var platformRoot = path.join(context.opts.projectRoot, 'platforms/android');
var manifestFile = path.join(platformRoot, 'AndroidManifest.xml');
if (fs.existsSync(manifestFile)) {
fs.readFile(manifestFile, 'utf8', function (err,data) {
if (err) {
throw new Error('Unable to find AndroidManifest.xml: ' + err);
}
var appClass = 'YOU_APP_CLASS';
if (data.indexOf(appClass) == -1) {
var result = data.replace(/<application/g, '<application android:name="' + appClass + '"');
fs.writeFile(manifestFile, result, 'utf8', function (err) {
if (err) throw new Error('Unable to write into AndroidManifest.xml: ' + err);
})
}
});
}
};
关于android - 从 Cordova plugin.xml 添加 android :name ="something" to AndroidManifest. xml "application"标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27550060/