在 Android Studio 的子模块上在运行时删除 jar
Remove jar during runtime on Sub-Module in Android Studio
我有三个 build.gradle 文件用于项目 (project build.gradle),一个用于主模块 (main build.gradle),一个用于另一个子模块 (submodule [=] 54=])
我的子模块 build.gradle
使用 ADM(亚马逊设备消息传递)。因此附加了以下依赖项。
使用提供的对主要 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')
}
注意:我也将 provided 更改为 providedlibs 之类的自定义内容,但它仍然不起作用
将以下内容添加到 子模块 build.gradle 文件(仍然是运行时异常)
android.libraryVariants.all {
variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' )
}
将以下内容添加到 子模块 build.gradle 文件(我什至不能用这个 fellah 编译 - 我猜它也会在构建过程中删除)
android.libraryVariants.all { variant ->
variant.outputs.each { output ->
output.packageLibrary.exclude('libs/someLib.jar')
}
}
有效的方法是将依赖项添加到 Maven 存储库并将其包含在具有提供的依赖项的库中
- 在 Maven 本地存储库中添加 ADM jar。
命令:
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 存储库作为项目依赖项:
在主 Gradle 构建脚本中添加“mavenLocal()”:
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
- Link ADM 项目中的 Maven 工件。
在下面添加行 ADMWrapperLib Gradle 脚本 (::)。
依赖项
{
编译文件树(目录:'libs',包括:'*.jar')
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'
}
我有三个 build.gradle 文件用于项目 (project build.gradle),一个用于主模块 (main build.gradle),一个用于另一个子模块 (submodule [=] 54=])
我的子模块 build.gradle
使用 ADM(亚马逊设备消息传递)。因此附加了以下依赖项。
使用提供的对主要 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') }
注意:我也将 provided 更改为 providedlibs 之类的自定义内容,但它仍然不起作用
将以下内容添加到 子模块 build.gradle 文件(仍然是运行时异常)
android.libraryVariants.all { variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' ) }
将以下内容添加到 子模块 build.gradle 文件(我什至不能用这个 fellah 编译 - 我猜它也会在构建过程中删除)
android.libraryVariants.all { variant -> variant.outputs.each { output -> output.packageLibrary.exclude('libs/someLib.jar') } }
有效的方法是将依赖项添加到 Maven 存储库并将其包含在具有提供的依赖项的库中
- 在 Maven 本地存储库中添加 ADM jar。
命令:
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 存储库作为项目依赖项:
在主 Gradle 构建脚本中添加“mavenLocal()”:
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
- Link ADM 项目中的 Maven 工件。
在下面添加行 ADMWrapperLib Gradle 脚本 (::)。
依赖项 { 编译文件树(目录:'libs',包括:'*.jar')
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'
}