gpt4 book ai didi

java - 安卓工作室 : Jar files included within Java module aren't found at runtime

转载 作者:行者123 更新时间:2023-11-29 20:26:16 24 4
gpt4 key购买 nike

我有一个“java 模块”,其中包含一些 jar 文件 (lib.jar)。它们使用 fileTree 方法包含在我的模块 build.gradle 文件中。

compile fileTree(dir: 'libs', include: ['*.jar'])

当我将“java 模块”作为依赖包含在主应用程序中时,当该模块尝试访问 lib.jar 中的类时,我总是会得到 ClassDefNotFoundException。

以下是项目层次结构:

|--mylibrary (java module)
|
--libs/
|
--lib.jar
--build.gradle
|--app
|
--src/
--libs/
--build.gradle

此问题仅在模块是“java 模块”时发生。我已经尝试使用“android 库模块”作为依赖项,并且 jars 都包含在内。我错过了什么?

Java 模块 build.gradle:

apply plugin: 'java'

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}

应用构建.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
applicationId "com.macolighting.mncp.myapplication"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':mylibrary')
}

最佳答案

如果有人想知道我是如何解决这个问题的,我必须手动将 jar 依赖项提取到构建 jar 中。这有点老套,但它确实有效。向谷歌提交了一个错误,希望他们能解决问题。 https://code.google.com/p/android/issues/detail?id=186012

apply plugin: 'java'

configurations {
libDependency
}

jar {
from {
configurations.libDependency.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}

dependencies {
FileTree libs = fileTree(dir: 'libs', include: '*.jar')
libDependency libs
compile libs
}

关于java - 安卓工作室 : Jar files included within Java module aren't found at runtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com