android studio 3.1.3爬坑之旅

 

参考链接:https://blog.csdn.net/xinpengfei521/article/details/79813446

  1. 出错信息:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something? 翻译:“SourceSet” 的'instrumentTest' 没有被Android Gradle插件识别。也许你拼错吗?

解决方案:新版本Gradle对其做了重命名

即:

旧版本 - > 新版本

instrumentTestCompile - > androidTestCompile

instrumentTest - > androidTest

  1. 出错信息:Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be removed at the end of 2018 翻译:配置“编译”已经过时,取而代之的是“实现”。它将在2018年底被移除。

解决方案:我们的依赖的library中使用了compile,相当于是library依赖了一个第三方库,直接改为implementation就相当于屏蔽掉了app对library依赖的第三方库api的访问权限,而我们的app刚好用到了library依赖的第三方库的api,所以直接改为implementation是不行的,要想让app能访问到就将其改为 api就可以了,其实这不是一个好的解决办法,最好的解决办法是,library中封装一层app访问library依赖的第三方库api的方法,这样的话app是和library依赖的第三方库是没有任何关系的,这样就降低了app与library依赖的第三方库的耦合性,这样也体现了“第三方库隔离”的原则,如果以后依赖的库变了,你只需要修改library中依赖的库及app调用的方法即可,不用动app里面的代码了~

  1. 出错信息:Duplicate zip entry [com/c/a/a/a/a.class == 69.jar:com/ta/utdid2/b/a/a.class] 翻译:重复的类,即类所在的包名和类名都相等

解决方案:

(1)两个library中都添加 utdid4all-1.1.5.3_proguard.jar 使用 compileOnly 关键字编译

(2)两个library中都不添加 utdid4all-1.1.5.3_proguard.jar;

(3)在app中添加一个 utdid4all-1.1.5.3_proguard.jar 进行编译即可

参考链接:https://stackoverflow.com/questions/44413952/gradle-implementation-vs-api-configuration

  1. jniLibs与libs(两种方法) (1)单独分开创建配置(libs配置好先同步,再配置jniLibs) (2) so文件和jar文件都放入libs里边,要在build.gradle里边加如下代码:

sourceSets {

main {
              jniLibs.srcDirs = ['libs']
    }

}

一定要仔细看官方文档,及时看看更新没有,因为一些更新会跟原来的不一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值