Правильный способ обработки транзитивной зависимости .jar в модуле библиотеки Java

Изменить: Примечание: эта проблема исправлена ​​в AS3, что теперь делает зависимости jar временными. Ура.


У меня есть проект Android Studio (2.2) с использованием Gradle 1.1, в котором есть основное приложение и несколько библиотечных модулей (как для Android, так и для чистых java-библиотек).

Некоторые модули библиотеки Java зависят от файлов .jar:

  • App
    • libs (directory, all files listed in App dependencies)
      • f1.jar,
      • f2.jar...
    • Module 1 (java library project/module)
      • libs (directory, all files listed in Module 1 dependencies)
        • L1f1.jar,
        • L1f2.jar...

Когда я запускаю приложение в эмуляторе, оно не может найти классы в L1Fn.jar.

Я читал в другом месте, что я могу ссылаться на эти библиотеки в основных зависимостях приложения, используя относительные пути.

Есть ли способ лучше? Могу ли я заставить Gradle распознавать необходимость этих файлов во время выполнения в проекте приложения?

Согласно запросу

Редактировать:

Главная build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.1"

    defaultConfig {
    applicationId "my.app.id"
    minSdkVersion 14
    targetSdkVersion 19
    multiDexEnabled true

    jackOptions 
        {
            enabled true
        }
    }

    dexOptions
     {
        javaMaxHeapSize "4g"
     }

    buildTypes {
        release
        {
          minifyEnabled true
          proguardFiles 'proguard-project.txt'
        }
    }
    compileOptions {
     sourceCompatibility JavaVersion.VERSION_1_8
     targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile project(':theLibraryProject')
}

Библиотека build.gradle:

apply plugin: 'java'

dependencies {
    compile files('libs/jar-file-1.jar')
    compile files('libs/jar-file-2.jar')
}

person RabidMutant    schedule 22.07.2016    source источник
comment
Показывает нам файл gradle   -  person Eugen Martynov    schedule 22.07.2016
comment
@EugenMartynov Готово.   -  person RabidMutant    schedule 22.07.2016
comment
Оба ваших файла Gradle хороши с первого взгляда. Я не могу сказать, что не так. У вас есть образец проекта для воспроизведения пьесы?   -  person Eugen Martynov    schedule 22.07.2016


Ответы (1)


вы должны использовать:

apply plugin: 'android-library'

в файле сборки вашей библиотеки

person canisLupusLupus    schedule 22.07.2016
comment
К сожалению, я сделал ошибку в исходном вопросе; второй проект НЕ является библиотекой Android, это просто библиотека java, которая зависит от других файлов jar, поэтому добавление «android-library» не вариант. - person RabidMutant; 24.07.2016