Cordova 8, Android 7.1.0, не может устанавливать плагины - PullRequest
0 голосов
/ 28 июня 2018

Каждый плагин, который я пытаюсь установить, выдает ошибку, говорящую, что он не может найти манифест. И это правда, файла там нет. Я пытаюсь обновить версию 6.4, так как 6.4, похоже, не поддерживает 64-битные процессоры на Android без внесения изменений в манифест сборки вручную.

Failed to install 'cordova-plugin-geolocation': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-file': Error: ENOENT: no such file or directory, open 'C:\..\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-google-analytics': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-inappbrowser': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-whitelist': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-network-information': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-sqlite-storage': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-android-permissions': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-statusbar': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-device': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Failed to install 'cordova-plugin-image-picker': Error: ENOENT: no such file or directory, open 'C:\...\platforms\android\AndroidManifest.xml'

Как мне решить эти ошибки?

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Получил ответ, удивительное сообщество создало скрипт для его исправления.

Создайте скрипт в папке скриптов с именем

патч-андроид-студия-check.js

Поместите это внутрь

/**
 * This hook overrides a function check at runtime. Currently, cordova-android 7+ incorrectly detects that we are using
 * an eclipse style project. This causes a lot of plugins to fail at install time due to paths actually being setup
 * for an Android Studio project. Some plugins choose to install things into 'platforms/android/libs' which makes
 * this original function assume it is an ecplise project.
 */
module.exports = function(context) {
  if (context.opts.cordova.platforms.indexOf('android') < 0) {
    return;
  }

  const path = context.requireCordovaModule('path');
  const androidStudioPath = path.join(context.opts.projectRoot, 'platforms/android/cordova/lib/AndroidStudio');
  const androidStudio = context.requireCordovaModule(androidStudioPath);
  androidStudio.isAndroidStudioProject = function() {  return true; };
};

Затем добавьте эти крючки

<platform name="android">
   <hook src="scripts/patch-android-studio-check.js" type="before_plugin_install" />
   <hook src="scripts/patch-android-studio-check.js" type="before_plugin_install" />
   <hook src="scripts/patch-android-studio-check.js" type="before_plugin_add" />
   <hook src="scripts/patch-android-studio-check.js" type="before_build" />
   <hook src="scripts/patch-android-studio-check.js" type="before_run" />
   <hook src="scripts/patch-android-studio-check.js" type="before_plugin_rm" />
</platform>

Далее удалите папку с плагинами и платформами. Затем запустите cordova platform add android, и это заново создаст платформу и правильно добавит плагины.

Вторая часть - не использовать плагин выбора изображений.

Обновление: март 2019 г. - Начиная с версии 8 для Cordova Android, это, по-видимому, больше не требуется и фактически вызывает проблемы.

0 голосов
/ 21 июня 2019

В вашем файле config.xml под

<platform name="android">

Добавить эту строку

<resource-file src="platforms/android/app/src/main/AndroidManifest.xml" target="AndroidManifest.xml" />
0 голосов
/ 29 июня 2018

Согласно документации ( cordova android 7 , путь к файлу AndroidManifest.xml изменился. Поэтому вам необходимо обновить все ваши плагины до версии, поддерживающей android 7!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...