Добавьте android: name = "something" в тег приложения AndroidManifest.xml из Cordova plugin.xml

Я решил открыть новый вопрос, потому что ни один из тех, которые уже размещены, имеет хороший ответ.

Мне нужно обновить AndroidManifest.xml «из plugin.xml» , так что тег <application> имеет следующее свойство, наряду с уже имеющимся :

android:name="mypackage" 

Как это можно сделать?

спасибо

Solutions Collecting From Web of "Добавьте android: name = "something" в тег приложения AndroidManifest.xml из Cordova plugin.xml"

У меня была та же проблема, и я использовал крючок Кордовы, чтобы выполнить эту работу.

Сначала отредактируйте файл 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); }) } }); } }; 

В самом деле, как упоминалось в jlreymendez, правильный путь таков:

  <edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge"> <application android:name="com.mypackage.MyApplication"/> </edit-config> 

Также обратите внимание, что изменения будут отменены, если вы удалите плагин, что не произойдет с крюком.

Я думаю, у меня была такая же проблема, как и вы. Я нашел это в документации по кордове.

https://cordova.apache.org/docs/en/4.0.0/plugin_ref_spec.md.html

Если вы ищите заголовок «config-file Element», вы найдете пример:

 <config-file target="AndroidManifest.xml" parent="/manifest/application"> <activity android:name="com.foo.Foo" android:label="@string/app_name"> <intent-filter> </intent-filter> </activity> </config-file>