gradle编译问题

前提:当前使用Android Studio版本4.2

AS4.2版本默认的编译版本是Java11,一般对应的gradle插件版本4.2.1,gradle版本6.7,1

其对应关系

问题:导入一个项目,编译报错

这个就是gradle版本的问题。

原项目使用的是:

classpath 'com.android.tools.build:gradle:3.0.1'

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

修改为

classpath 'com.android.tools.build:gradle:4.1.0'
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

最后发现只修改gradle对应版本还不能解决问题。

接着

1)

org.greenrobot.greendao.gradle.Greendao3GradlePlugin.createGreendaoTask

这是跟GreenDao版本的冲突

原项目使用 

org.greenrobot:greendao:3.2.2

改为

org.greenrobot:greendao:3.3.0

2)Could not get unknown property 'packageForR' for task

 这是gradle版本和butterknife版本引起的问题

原项目使用

com.jakewharton:butterknife:8.5.1

同时有

那么需要改为:

a、去掉

apply plugin: 'com.jakewharton.butterknife'

b、

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

c、去掉

classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'

重新编译,上述问题没有了,而又出现了新的问题

The following annotation processors are not incremental

由于butterknife导致项目编译失败,进而导致dagger文件未成功生成。

解决: 

编译通过。

》》》》》》》安装apk后,请求失败

CLEARTEXT communication not supported: [ConnectionSpec(cipherSuites=[TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CB

用的Android 10.0手机,应该是项目比较老,android P请求问题。

安卓9开始,不容许未加密就进行网络数据交互。

所以使用http的朋友,会遇到这个问题。

解决办法两个:

1)将http改为https

2)Application节点增加

android:networkSecurityConfig="@xml/network_security_config"

最后,终于成功运行并可以请求到数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值