У меня есть «Java-модуль», который содержит некоторые файлы jar (lib.jar). Они включены в мой файл build.gradle модуля, используя метод fileTree.Android Studio: файлы Jar, входящие в состав модуля Java, не найдены во время выполнения
compile fileTree(dir: 'libs', include: ['*.jar'])
Когда я включаю модуль «Java» в главном приложении, как зависимость, я всегда получаю ClassDefNotFoundException когда модуль пытается получить доступ к классам в lib.jar.
Ниже приводится иерархия проекта:
|--mylibrary (java module)
|
--libs/
|
--lib.jar
--build.gradle
|--app
|
--src/
--libs/
--build.gradle
Эта проблема возникает только тогда, когда модуль является «модуль Java». Я пробовал с «модулем библиотеки Android», поскольку зависимость и банки включены в комплект. Что мне не хватает?
модуль Java build.gradle:
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
App build.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')
}
просто изменить 'применить плагин:«com.android.library'' в вашем модуле Gradle –
добавить компилировать файлы (»ЛИЭС/yourJar.jar ') в вашем Gradle зависимости –
К сожалению, я должен быть более Чисто. Я хочу, чтобы «Java-модуль» строго был java-кодом и имел нулевые зависимости от android. Если я изменю плагин с «java» на «com.android.library», мне понадобится манифест android. – Tez