Android10 API 29引入开源项目常见问题以及解决方法

最近在学习Android,在百分比布局的时候,需要引入ZHY大神的百分比库。但是下载到的是源文件,并不是jar等,需要自己手动打包引入,在打包引入的过程中遇到以下问题,和大家分享一下这些问题和解决方法。同时感谢其他各位博主的优秀文档。

问题1 Gradle sync failed: Could not find com.android.tools.build:gradle:xxx版本

这里是找不到gradle的版本。首先应该了解Android的gradle机制,android中存在两个Gradle,一个是AndroidStudio使用的gradle插件,另一个是实际使用的gradle。两个分别位于不同的文件夹下面。gradle插件版本在.gradle文件下面,而gradle在gradle的文件夹下。其机制就是当系统发现.gradle文件夹的时候,会根据gradle文件夹下面的properties文件创建我们需要的gradle。如果碰到这个问题,不要慌,打开setting找到gradle如下图
在这里插入图片描述

最简单的方法就是使用默认,默认模式是当发现.gradle文件夹的时候,系统会根据gradle-wrapper.properties来创建当前的gradle,但是在此之前需要搞清楚gradle版本的对应关系,例如多大版本的plugin对应多少版本的gradle。Service directory就是当前配置gradle的.gradle文件夹。我这里是用的ZHY大神的百分比布局的gradle,默认的gradle在user下面的.gradle文件夹。这样设置以后同步即可解决上述问题。

如果要使用自定义的gradle可以根据错误的提示,下载当前的gradle(这个是插件版本的),然后放到你的user默认文件夹下也就是gradle文件夹下。但是在实际的操作中3.5.2的版本链接无效。其他的版本的可以自己尝试
版本的对应可以参考以下两个博客https://blog.csdn.net/babytiger/article/details/86607201
https://blog.csdn.net/stulcc/article/details/54600320
给出的解释和版本都很详细。

问题2 Library projects cannot set applicationId问题解决

上面这个问题经常在引入别人的文件中碰到,文件中会在build.gradle的defaultConfig块中设置application的id,所以在整合的时候会报错,无法设置这个id,解决方法就是找到buil.gradle删除这个id。有时候这个id会有几处,可以直接在ctrl+shift+r中查找,然后删除。问题就会解决。
在这里插入图片描述
上面是在引入百分比布局的时候遇到的id问题,可以删除也可以注释掉

问题3: Gradle DSL method not found: ‘google()’

这个是由于SDK版本或者其他的原因,当前的项目中不支持google()函数。google在build.gradle文件在project下的build.gradle文件的allprojects块中,是用来加载当前项目需要的一些资源或者包的。google的作用就是利用goole进行下载配置资源中当前项目中不存在的包。这里主要是针对于项目中引用了开源maven.gradle的项目/可以直接改成
maven{url:‘http//maven.google.com’}
记得一定是单引号
在这里插入图片描述

问题 4 Error:(2, 0) Plugin with id ‘com.github.dcendents.android-maven’ not found解决办法

部分项目中引用了maven所以当没有配置bintray-plugin和maven-plugin的时候就会报如上的错误。解决的方法就是引入这两个依赖。解决的方法就是在project的build.gradle中dependencies块中添加如下代码:
classpath"com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0"
classpath’com.github.dcendents:android-maven-gradle-plugin:1.5’

需要注意的第二个gradle有版本的对应选择,由于我是使用的3.5.2所以使用了1.5的版本,如果存在这个报错可以尝试更换对应版本。上面的bintray-plunin可以尽量更新到最新的版本。
在这里插入图片描述
版本号对应的问题可以在问题2引用的博客中找到

问题5 Failed to resolve: com.android.support:appcompat-v7:29.

降低targetVertion的版本的办法,可以参考博客
https://blog.csdn.net/Camille05/article/details/96697638
如果你是个强迫症非要使用最新版本,可以参照以下方法修改。默认的sdktools在androidstudio中一般是26.1.1,查看这个版本在SDK中的update,如下
在这里插入图片描述

因为我使用的是29.0.2所以会出现当前的SDK tools不支持当前的API版本,根据API版本来看我应该使用platform29的版本,如下操作即可解决。打开SDK manager ,找到SDK tools,

接着选择SDK build tools 29.0.2版本进行下载,安装
在这里插入图片描述
在这里插入图片描述
记得一定是当前版本或者更高的工具。之后该问题解决。同时该方法同样适用其他版本的该问题解决
**

问题6 minSDKVertion x is smaller than the vertion xx……

**
当前使用的minSDKvertion小于设定的最小SDKvertion报错。这个直接ctrl+shift+r查找报错的minSDKvertion版本号,然后替换成小于的版本号,重新同步即可解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值