Кордова не создает AndroidManifest.xml

Я работаю в Кордове и AndroidStudio для создания приложений для Android/iOS. Все работало нормально, пока я не обновил свою Кордову до 8 вчера. Я также обновил Node до последнего. Когда я создаю проект в Кордове и добавляю платформу Android. Это дает совершенно другую структуру каталогов. Я не могу видеть папки assets, res и src в каталоге платформы проекта D:\testApp1\platforms\android. Что еще более важно, в приведенном выше каталоге отсутствует AndroidManifest.xml, из-за admob плагин admob терпит неудачу при добавлении.

Вот ошибка, которую я получаю при добавлении плагина:

Не удалось установить "cordova-plugin-admobpro": Ошибка: ENOENT: нет такого файла или каталога, откройте "D:\Projects\testApp1\platform\android\AndroidManifest.xml" в Object.fs.openSync(fs.js: 646: 18) в Object.fs.readFileSync(fs.js: 551: 33) в Object.parseElementtreeSync(D:\Projects\testApp1\platform\android\cordova\node_modules\cordova-common\src\util\xml-helpers. js: 180: 27) на новом AndroidManifest (D:\Projects\testApp1\platform\android\cordova\lib\AndroidManifest.js: 29: 20) в AndroidProject.getPackageName(D:\Projects\testApp1\platform\android\cordova\lib\AndroidProject.js: 99: 12) в Api.addPlugin(D:\Projects\testApp1\платформ\android\cordova\Api.js: 223: 57) в handleInstall (C:\Users\Rao\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js: 594: 10) в папке C:\Users\Rao\AppData\Роуминг\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js: 357: 28 в _fulfilled (C:\Users\Rao\AppData\Роуминг\npm\node_modules\cordova\node_modules\cordova-lib\node_ модули \q\q.js: 787: 54) в self.promiseDispatch.done(C:\Users\Rao\AppData\Роуминг\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js: 816: 30)

Кто-то может помочь?

Ответы

Ответ 1

Cordova CLI v8.0 по умолчанию будет использовать [email protected].

Поскольку большинство плагинов cordova не поддерживают [email protected], вы также можете попробовать использовать более старую версию, указав версию:

cordova platform add [email protected]

Или, если вам удобно пользоваться [email protected], вы также можете дождаться обновления на cordova-plugi-admobpro для поддержки [email protected], это скоро.

Ответ 2

Окончательное редактирование:

Cordova-Android 7.1.4 вышел, это должно решить большинство проблем такого рода.

редактировать:

По мере того, как люди продолжают голосовать, я расскажу подробнее о проблеме.

Проблема на самом деле не в том, что плагин пишет в AndroidManifest.xml или в config.xml. Это правда, что местоположение изменилось, и плагины должны обновить путь, но это не обязательно, и Cordova позаботится о новых путях.

Проблема в том, что некоторые плагины используют тег source-file для вещей, которые не являются исходным кодом. (т.е. используя его для копирования изображений вместо использования тегов resource-file). Это создает папку res (или lib), которая вводит в заблуждение Cordova, считая его старым проектом Eclipse, в то время как это действительно проект студии Android, и ищет файлы на старых местах вместо того, чтобы смотреть на новые места.

Это было исправлено в cordova-android и будет исправлено в следующем выпуске. Обходной путь - найти плагин с помощью тега source-file и обновить его для использования тега resource-file

СТАРЫЙ ОТВЕТ:

Теперь он находится в app/src/main/AndroidManifest.xml.

Если плагин пишет на нем, он должен быть обновлен, чтобы писать в нужном месте.

Читайте Cordova-андроид 7.0.0 релиза блог

Ответ 3

В файле config.xml проекта cordova в разделе тега xml <platform name="android"> добавьте следующий тег:

<resource-file src="platforms/android/app/src/main/AndroidManifest.xml" target="AndroidManifest.xml" />

Ответ 4

Я просто исправил ошибку, скопировав файл AndroidManifest.xml в

платформы\Android\приложение\SRC\главная\

в

платформы \Android\

Ответ 5

Понижение с 7.0 до 6.4 помогло мне

cordova platform rm android
cordova platform add [email protected]
cordova build

Ответ 6

  1. Во-первых, убедитесь, что плагин поддерживает rootova android 7.0. 0+
  2. Удалите все эти папки или файлы: ['AndroidManifest.xml', 'libs', 'res'] в корневом каталоге платформ /android.

Кордова использует эти файлы, чтобы определить, является ли проект проектом eclipse. Если они существуют, ваш проект будет рассматриваться как проект затмения со старой структурой пути. Некоторые плагины могут создавать эти файлы/папки в вашей папке Android.

Ответ 7

Проблема, как представляется, заключается в том, что вы пытаетесь выполнить сборку для выпуска одновременно с локальным запуском приложения. Я останавливаю приложение на localhost, а затем собираю его для релиза. Задача решена.

Ответ 8

У меня была проблема с пользовательским плагином, создающим папку libs в платформах \android. Это заставило Кордову поверить, что мой проект был проектом затмения, и поэтому он искал AndroidManifest в старом месте.

Если вы перешли на Cordova Android +7.0.0, убедитесь, что на платформах \android отсутствуют следующие элементы:

  • AndroidManifest.xml
  • ЛИЭС
  • Рез

эта ссылка помогла

Ответ 9

Это сработало для меня.

В package.json добавим Cordova-Android версию

 "cordova-android": "~6.3.0"

Затем добавьте платформу

cordova platform add android