AndroidStudio3.0遇到的坑(持续更新)

前言

不得不吐糟自己一下,作者因最近离职并出国浪去了,都冷落了简书妃子了,这样不好不好。


悲痛欲绝地默哀一秒钟后,还是回到主题上好了(顺便给点福利图,知道是谁的话可以在评论区给出你的答案哈)。


正文

Android Studio 2.3升级到Android Studio 3.0 Gradle builde报错:

Unable to resolve dependency for ':app@xxPreview/compileClasspath':com.android.support:appcompat-v7:26.1.0

对于这个问题,作者自己也是发现网上太多坑文,痛心疾首,索性重新整理一遍:

1.自行下载最新的gradle4.0以上(AS3.0最低支持4.0),且在Preferences的Gradle里配置,记得不要勾选offline work

  1. 项目外层build.gradle 的com.android.tools.build:gradle需要升级到3.0
dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
}
  1. 指令更新。如果用AS3.0创建新项目的时候你会发现compile被implementation替换了。
    在3.0版本中,compile 依旧可以继续使用,而新增了两个依赖指令,implementation 和api,这两个都是依赖添加,但是有什么区别呢?
  • api
    完全等同于compile指令,你可以将所有的compile改成api。
  • implementation
    这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。
    implementation举个栗子:
    这是app的网络模块层次,app module为最外层,可以直接调用network module,但由于network module在依赖okhttp等网络架构的时候使用implementation,app层便无法直接调用okhttp了。


    网络层次
小结

按照Google的说法,建议优先使用implementation,能有效增加编译速度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,511评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,422评论 19 139
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,680评论 2 45
  • 对我而言,你就是这么特别的人。牵着我长大,温暖我成人,教会我做人。曾经以为,山不会倒,靠会一直在,现在才明...
    卫家二幺阅读 3,287评论 0 0
  • 莲华20171124(D25) 【目标】 儿女健康成长,快乐学习 1.护生群随喜 2.挑战100天不挑剔,好好说话...
    幸运的莲华阅读 1,709评论 0 0