android - 在 Java 库模块中处理传递性 .jar 依赖项的正确方法

标签 android android-studio gradle android-studio-2.2

编辑: 注意:此问题已在 AS3 中修复,它现在使 jar 依赖项成为 transient 。是的。


我有一个使用 Gradle 1.1 的 Android Studio (2.2) 项目,它有一个主应用程序和几个库模块(android 和纯 java 库)。

一些 java 库模块依赖于 .jar 文件:

  • 应用程序
    • libs(目录,App dependencies中列出的所有文件)
      • f1.jar,
      • f2.jar...
    • 模块 1(java 库项目/模块)
      • libs(目录,模块 1 依赖项中列出的所有文件)
        • L1f1.jar,
        • L1f2.jar...

当我在模拟器中运行应用程序时,它找不到 L1Fn.jar 中的类。

我在别处读到,我可以使用相对路径在主要 App 依赖项中引用这些库。

有没有更好的方法?我能否让 Gradle 在 App 项目运行时识别这些文件的需求?

根据要求

编辑:

主要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')
}

最佳答案

你应该使用:

apply plugin: 'android-library'

在你的库构建文件中

关于android - 在 Java 库模块中处理传递性 .jar 依赖项的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517079/

相关文章:

android - 如何使用android studio将子模块推送到github?

java - 在Gradle 4.6版中应用注释处理器

android - 是否可以模拟发布构建类型的位置

php - Android/PHP - 同步本地和远程数据库的最佳方式

android - 如何在 Android 运行时更改当前主题

android - 如何在 Android Studio 中使用断言

Java反射: how get value of Field as Arraylist<>

Windows 7 VM 上的 Android Studio 虚拟设备不兼容

intellij-idea - 使用 Gradle 导入时运行桌面 libgdx 时出错

android - 无法解析 com.android.billingclient :billing:dp-1