Я унаследовал проект cordova, в котором используется cordova-plugin-xapkreader, который, похоже, является стандартным плагином для доступа к файлам расширения (он же OBB). Я столкнулся с проблемой, которая может повлиять на другие плагины Cordova. Я получаю следующие ошибки при запуске cordova build android
:
Configuration 'compile' in project ':' is deprecated. Use 'implementation' instead.
publishNonDefault is deprecated and has no effect anymore. All variants are now published.
Configuration 'compile' in project ':com.flyingsoftgames.xapkreader:downloader_library' is deprecated. Use 'implementation' instead.
publishNonDefault is deprecated and has no effect anymore. All variants are now published.
Configuration 'debugCompile' in project ':com.flyingsoftgames.xapkreader:downloader_library' is deprecated. Use 'debugImplementation' instead.
Configuration 'releaseCompile' in project ':com.flyingsoftgames.xapkreader:downloader_library' is deprecated. Use 'releaseImplementation' instead.
Configuration 'compile' in project ':com.flyingsoftgames.xapkreader:library' is deprecated. Use 'implementation' instead.
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':compileDebugJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':debugCompileClasspath'.
> Could not resolve project :com.flyingsoftgames.xapkreader:library.
Required by:
project : > project :com.flyingsoftgames.xapkreader:downloader_library
> Project :com.flyingsoftgames.xapkreader:downloader_library declares a dependency from configuration 'debugCompile' to configuration 'debug' which is not declared in the descriptor for project :com.flyingsoftgames.xapkreader:library.
Это было сообщено как ошибка на форуме плагина кем-то еще, но обходной путь не работает надежно:
https://github.com/agamemnus/cordova-plugin-xapkreader/issues/116
Проблема заключается в том, что gradle ожидает, что вы теперь будете использовать implementation
, а не compile
, debugCompile
и т. Д. Файл gradle для плагина генерируется кордовой на основе шаблона внутри cordova-android. Предложенный обходной путь - изменить шаблон (или сгенерированные файлы Gradle) в скрипте, запущенном из ловушки cordova. К сожалению, по некоторым причинам, крючки не работают надежно - иногда они работают, иногда нет. Такое ощущение, что это может быть связано с состоянием гонки, вызванным асинхронным перехватом хуков с остальным процессом сборки, поэтому иногда сборка gradle начинается до того, как файлы gradle могут быть изменены.
У кого-нибудь есть идеи, как правильно это исправить? Кто-нибудь знает, почему это не более распространенная проблема, которую проект cordova-android не устранил, изменив их шаблон? Это что-то, что я могу исправить путем понижения какой-то части процесса сборки?
Я довольно новичок в Кордове, так что все это довольно сложно и любая помощь очень ценится!