代码之家  ›  专栏  ›  技术社区  ›  dev90

我的项目没有获取库模块jar文件夹中定义的类文件

  •  1
  • dev90  · 技术社区  · 7 年前

    我已通过访问添加了一个库 File-> New ->Import Module ,库添加成功,有 8 jar 文件已添加到此导入模块中,但在我的应用程序模块中,我无法访问这些文件。

    虽然我可以很容易地访问库中可用的文件 src 文件夹。

    这些行被添加到库gradle文件中。

    compile fileTree(dir: 'libs', include: '*.jar')
    compile fileTree(dir: "$buildDir/native", include: 'native.jar')
    

    build.gradle(应用程序)

    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':myLibrary')
    

    include ':myLibrary'
    

    如果我在一个新项目中执行这些步骤,我可以从我的数据库访问jar文件中的类 app module ,但在我当前的项目中,它们是不可访问的。

    我也试过删除 android studio preference , invalidate cache and restart ,但在这里什么也看不到。

    1 回复  |  直到 7 年前
        1
  •  1
  •   shizhen    7 年前

    在我当前的项目中,它们是不可访问的。

    不应该访问,因为这些依赖关系jar不是应用程序项目的一部分。

    myLibrary ,您需要在 app

    compile fileTree(dir: '../myLibrary/libs', include: '*.jar')
    compile fileTree(dir: "../myLibrary/native", include: 'native.jar')
    

    改变你的想法 我的图书馆 设置为

    provided fileTree(dir: 'libs', include: '*.jar')
    provided fileTree(dir: "$buildDir/native", include: 'native.jar')
    

    也许将你的Android Gradle插件升级到3.0+会更好。

    1. https://stackoverflow.com/a/51392464/8034839
    2. https://developer.android.com/studio/build/dependencies

    请在这里引用关键的解释,以了解您关于 provided compileOnly :

    Gradle只将依赖项添加到编译类路径(也就是说,它不会添加到构建输出)。当您创建Android模块并且在编译期间需要依赖项时,这很有用,但是在运行时显示依赖项是可选的。

    类路径 .罐子 . 在这种情况下,使用此库的应用程序需要添加库模块依赖的那些外部jar,因为库模块没有打包它们(通过使用) 编译 ) . 应用程序需要这些外部jar在运行时可用 compile .

    推荐文章