更新AS导致更新gradle导致的问题:Gradle sync failed: Unable to load class 'javax.xml.bind.annotation.XmlSchema

最近AndroidStudio更新后,发现无法完成gradle sync,报的错误忘记截图了,反正上网查了说是gradle版本和JDK不兼容,就是我的gradle太低了,需要更新(这真是很奇怪,因为AS没有更新又不更新JDK的,怎么以前没有问题?萌新不懂)于是我就上网搜相关的博客更新,步骤也很简单,
其中最后一步是:
在android目录下,找到 build.gradle(注意有两个,选这个:build.gralde(project:xxxxx)),打开找到:

dependencies {
classpath ‘com.android.tools.build:gradle:3.6.1’

这个应该是gradle插件版本号(和gradle本身是两码事!我看了一篇博客,大概说就是gradle是一种项目构建工具,可以应用在很多平台上,不一定使用在AS里面;而这里的gradle插件则是AS应用gradle的工具)
然后我的gradle更新的是4.8.1版本的,网上说改成:

classpath ‘com.android.tools.build:gradle:3.0.0+’

就可以了,
##但是!
重新同步,然而又出现了问题:
“发现错误:Gradle sync failed: Unable to load class ‘javax.xml.bind.annotation.XmlSchema’.”,具体如下:

Gradle sync failed: Unable to load class ‘javax.xml.bind.annotation.XmlSchema’.
This is an unexpected error. Please file a bug containing the idea.log file.
Consult IDE log for more details (Help | Show Log) (21 s 455 ms)

(这个问题上网搜遍了就是找不到解答,自己又无意间弄好了,于是就想写一篇博客帮助遇到同样问题的人。)
解决办法很简单,我先是将:

classpath ‘com.android.tools.build:gradle:3.0.0+’

改成:

classpath ‘com.android.tools.build:gradle:3.2.0+’

然后重新同步,提示:

Plugin Update Recommended: Android Gradle Plugin is ready to update.

就是建议更新gradle插件。于是更新,之后重新同步就好了。并且,我之前的:

classpath ‘com.android.tools.build:gradle:3.2.0+’

变成了:

classpath ‘com.android.tools.build:gradle:3.6.1’

所以说,神奇的是,3.0.0+不会提示更新gradle插件,但改成3.2.0+就会提示更新!呵呵。。。
后来上网查了查gradle插件版本号和gradle版本号匹配问题,点这个
这篇文章里说到:

注意:请勿在版本号中采用动态依赖项(例如 ‘com.android.tools.build:gradle:2.+’),否则可能会导致意外的版本更新和难以解析的版本差异。

意思时用‘+’号可能有些问题…总之,尽量不用吧。

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值