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)
我换compile到implementation,当我试图运行我的应用程序,我所有的类,试图访问import com.somelib.somepackage.SomeClassimport语句抛出一个错误,这个包didnt存在.
我改回去了compile,我能够构建并运行我的应用程序.
我希望遵守新规则,因为compile已弃用,并将在下一个Gradle版本中删除,那么我该如何去做呢?
如果您尝试从应用程序项目中访问库项目中包含的.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
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |