一、问题

       第一行代码Android的作者在使用百分比布局的时候是在build.gradle中添加如下的百分比布局库依赖。

打开app/build.gradle文件,在dependencies闭包中添加如下内容: 

dependencies{   compile fileTree(dir:'libs',include:['*.jar'])   compile 'com.android.support:appcompat-v7:24.2.1'   compile 'com.android.support:percent:24.2.1'   testCompile 'junit:junit:4.12'}

       但是在添加之后发现代码报错,因为Appcompat后面的版本号太低出现了兼容性问题。

       接下来把dependencies闭包中的代码compile更改为implementation,版本号更改为-v7:27.1.1就可以了,更改完成后记得要点击一右上角的Sync Now同步,如下图:

Android Studio3.1.2在项目的build.gradle中添加百分比布局库的依赖问题_第1张图片

效果图:

Android Studio3.1.2在项目的build.gradle中添加百分比布局库的依赖问题_第2张图片

下面引用来自:https://blog.csdn.net/silenceoo/article/details/78735687

         这是因为Android Studio版本更新至3.0了,更新后,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加令人兴奋的是完全支持Java8。当然,对于Kotlin的支持,在这个版本也有所体现,Kotlin插件默认是安装的。

二、依赖变化

    当我们使用Android Studio3.0新建项目时会发现,默认的依赖由之前的compile更改为implementation了。

3.0 以下版本build.gradle中依赖的写法:

compile fileTree(dir: 'libs', include: ['*.jar'])

但在3.0后的写法为

implementation fileTree(dir: 'libs', include: ['*.jar'])或api fileTree(dir: 'libs', include: ['*.jar'])

三、区别

     在3.0版本中,compile 指令被标注为过时方法,而新增了两个依赖指令,一个是implementation和api,这两个都可以进行依赖添加,但是有什么区别呢?

api

    完全等同于compile指令,没区别,你将所有的compile改成api,完全没有错。

implementation

       这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。

举个例子:

       比如我在一个libiary中使用implementation依赖了gson库,然后我的主项目依赖了libiary,那么,我的主项目就无法访问gson库中的方法。这样的好处是编译速度会加快,推荐使用implementation的方式去依赖,如果你需要提供给外部访问,那么就使用api依赖即可

    在Google IO 相关话题的中提到了一个建议,就是依赖首先应该设置为implementation的,如果没有错,那就用implementation,如果有错,那么使用api指令,这样会使编译速度增快。

更多相关文章

  1. eclipse android或者Java应用查看jdk路径和版本与android studio
  2. 【Android基础学习】Android使用fitsSystemWindows属性实现–状
  3. 适用于 Android 8.0 及以下全部版本的拍照示例
  4. 仿IOS透明通知栏(仅支持4.4以上版本)
  5. Android在高jar包版本的工程中修改方法
  6. android adb常用指令
  7. Android串口的兼收 Android上执行硬件指令
  8. 百度地图定位SDKv4.2版本(android)的使用教程
  9. Android的持续化集成及多版本打包

随机推荐

  1. tomcat启动web项目时候突然卡住
  2. 导致org.hibernate创建记录。MappingExce
  3. php RSA加密 JAVA 证书生成
  4. android与后台服务器的前后端通信
  5. java动态加载jar文件
  6. 003 恶补java运算(内容网摘)
  7. WebBrowser 遇到 javascript:void(0) 页
  8. IT兄弟连 JavaWeb教程 文件上传技术
  9. 读取Excel文件并跳过空行但不是空列
  10. Spring MVC-集成(Integration)-集成LOG4J示