Удалите jar во время выполнения на субмодуле в Android Studio
У меня есть три файла build.gradle для проекта (проект build.gradle), один для основного модуля (main build.gradle) и один для другого подмодуля (подмодуль build.gradle)
Мой субмодуль build.gradle
использует ADM (Amazon Device Messaging). и поэтому имеет следующую зависимость.
Использование предоставленной зависимости от основного build.gradle работает, но не работает, если я добавлю его в подмодуль. Следующее работает, если на
основной build.gradle
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', exclude: 'amazon-device-messaging-1.0.1.jar', include: '*.jar')
provided files('libs/amazon-device-messaging-1.0.1.jar')
}
Что я пробовал
В подмодуль build.gradle добавлено следующее (по-прежнему получается исключение времени выполнения)
configurations { provided } sourceSets { main { compileClasspath += configurations.provided } test { compileClasspath += configurations.provided } } sourceSets.main.compileClasspath += configurations.provided dependencies { provided files('libs/amazon-device-messaging-1.0.1.jar') }
ПРИМЕЧАНИЕ. Я также изменил предоставленный файл на что-то нестандартное, например,libslibs, и он все еще не работает
В файл подмодуля build.gradle добавлено следующее (все еще исключение времени выполнения)
android.libraryVariants.all { variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' ) }
Добавил следующее в файл подмодуля build.gradle (я даже не могу скомпилировать этого парня - думаю, он удаляется и во время сборки)
android.libraryVariants.all { variant -> variant.outputs.each { output -> output.packageLibrary.exclude('libs/someLib.jar') } }
2 ответа
Что работает, так это добавление зависимости к репозиторию maven и включение его в библиотеку с предоставленной зависимостью
- Добавьте банку ADM в локальный репозиторий Maven.
Команда:
mvn install:install-file "-Dfile=amazon-device-messaging-1.0.1.jar" "-DgroupId=com.amazon.device.messaging" "-DartifactId=amazondevicemessaging" "-Dversion=1.0.1" "-Dpackaging=jar"
- Включите локальный репозиторий maven в качестве зависимости проекта:
Добавьте "mavenLocal()" в основной скрипт сборки Gradle:
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
- Свяжите артефакт Maven в проекте ADM.
Добавьте ниже строку ADMWrapperLib Gradle скрипт (::).
зависимостей {compile fileTree (dir: 'libs', include: '*.jar')
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'
}