Android Studio 3和Gradle 4.3 - >库模块不再处理本地JAR - >如何处理这个?

K.R*_*.R. 4 android gradle android-studio-3.0

升级到Android Studio 3.0.0会提到这一点,并没有详细说明如何处理它:

Library modules no longer process local JARs. This is to speed up incremental builds that are caused by changes to a library module's code.

所以我有一个带有库项目的项目.在我的库项目的build.gradle文件中,我有这个:

compile files('libs/com.somelib.somepackage.jar')
Run Code Online (Sandbox Code Playgroud)

我换compileimplementation,当我试图运行我的应用程序,我所有的类,试图访问import com.somelib.somepackage.SomeClassimport语句抛出一个错误,这个包didnt存在.

我改回去了compile,我能够构建并运行我的应用程序.

我希望遵守新规则,因为compile已弃用,并将在下一个Gradle版本中删除,那么我该如何去做呢?

Thy*_*hys 5

如果您尝试从应用程序项目中访问库项目中包含的.jar中的类,则必须使用api而不是实现,否则只能在库项目中访问这些类:

implementation files('libs/com.somelib.somepackage.jar')
Run Code Online (Sandbox Code Playgroud)

应该

api files('libs/com.somelib/somepackage.jar')
Run Code Online (Sandbox Code Playgroud)

如文档所述:

...当一个模块包含api依赖项时,它让Gradle知道该模块想要将该依赖项传递给其他模块,以便它们在运行时和编译时都可用...

参考:https: //developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations