原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/2018/1227/280.html
常州微信公众平台-Android Studio新建工程Gradle编译报错(com.android.support:appcompat-v7:16.+)
以前的Android开发都是在Eclipse中,其缺点是Eclipse的大而全,对Android来说不够专业,还需要加入插件才可以支持,运行速度慢,调试不方便。为此Google重新研发了针对Android开发的IDE——Android Studio(以下简称为AS),截止目前,其稳定版本是1.5.1。优缺点网上都有,在此不再赘述。通过前期版本的迭代,AS已趋于成熟,是时候将开发工作移步到AS上了!
常州微信小程序开发学习的最好的方法是实践!在此推荐入门级书籍《Android编程权威指南 第2版》(Android Programming: The Big NerdRanch Guide 2nd Edition),此书第1版是基于Eclipse进行的实例开发,第2版则基于AS开发。其立意并不是按照国内大部分科技书籍的架构,将Android的组件、布局等一一介绍一遍,而是通过实例将这些内容融入其中,很容易上手。但一定要结合书中的实例,自己写一遍源码,才能真正的掌握精髓。
废话不多说了。进入正题。
首先搭建好AndroidStudio环境。我使用的是Ubuntu 12.04系统(由于此机器还要运行其他程序,为避免兼容性问题,暂未更新到最新,而继续沿用此稳定版),java和jdk都是现成的,无需配置。翻墙后从Google网站http://developer.android.com/sdk/index.htm下载最新的AndroidStudio for Linux。之后更新SDK。
一切顺利,将所有2.2之后的SDK下载完毕,就可以进行项目的开发了。
根据书中所说,创建一个全新工程。
三、问题的产生
完成后,AS会自动生成工程,且使用Gradle编译。由于我们的最低编译版本是API 16,即android 4.1,而当前的最新编译器已经达到了23,即android 6.0。所以会出现如下报错:
我们可以看到,报的错是“Failed to resolve: com.android.support:appcompat-v7:16.+”,也就是我们在build.gradle中最后一段中的compile项内容。
1. dependencies {
2. compile fileTree(dir: 'libs', include: ['*.jar'])
3. testCompile 'junit:junit:4.12'
4. compile 'com.android.support:appcompat-v7:16.+'
5. }
6. 报错窗口提供了3个解决方案的链接,依次尝试,都无法解决问题。所以需要仔细分析该问题。
7.
8. AS自动生成的“com.android.support:appcompat-v7:16.+”实际上是根据我们的最低版本16来选择16.x.x及以上编译器进行编译的,由于AS不知道具体的编译器版本是什么,所以就用了一个泛指“16.+”来代表16以上的编译器都行。这可能是之前AS的设计(未考证,只是推测,有知道的朋友可以提供说明,谢谢!),新版本中已经摒弃了这种写法。
9.
10. 那么我们常州网站开发建设就要找到当前AS所使用的SDK编译器版本是什么?
11.
12. 依次选择Tools→Android→SDK Manager,打开SDK Manager,选择SDK Tools选项卡。
找到其中的“Android Support Library, rev 23.2”,其版本为23.2.0,至此,我们已经知道了,应该使用“23.2.0”代替“16.+”。
真如我们所愿,这样一改就可以了呢?
又是报错,看来是build tools工具的问题。
回到build.gradle,看我们的build tools是如何定义的:
1. android {
2. compileSdkVersion 16
3. buildToolsVersion '19.1.0'
4.
5. ................
6. }
依次选择Tools→Android→SDK Manager,打开SDK Manager,选择SDK Tools选项卡。记住勾选右下角的“Show Package Details”,这样才能看到所有的“Android SDK Build Tools”选项。我已经下载了所有可用的版本,第一次打开,一般只下载了19.1.0。最好下载最新的,以和最新的SDK所匹配。下载时,游戏开发运营不要下载标注Obsolete的项,因为已经废弃,不再使用。
既然我们的appcompat-v7采用的是23,那么对应的buildToolsVersion也就选个最新的吧,于是将buildToolsVersion改为“23.0.2”。再看效果:
失败again!
别急,看报错信息......。一堆的资源找不到。再看报错文件夹,values-ldltr-v21,是API 21对之前的16版本不兼容。于是,也要把compileSdkVersion修改为23,此处为避免类似的资源问题,一步到位改到了23。
[plain] view plain copy
1. android {
2. compileSdkVersion 23
3. buildToolsVersion '23.0.2'
4.
5. ................
6. }
7. 最终,编译成功!
8.
9. 总结
10.
11.遇到这种编译问题不是很好解决,特别是刚开始使用AS,其编译、架构都与Eclipse完全不同,需要不断的摸索与适应。一旦熟练掌握了,你会发现AS是开发Android应用的最适合的效率工具。
12.
13.回到我们所遇到的这个问题,解决方法:
14.1、找到compile中"com.android.support:appcompat-v7"的详细版本。通过Tools→Android→SDK Manager,打开SDK Manager,选择SDK Tools选项卡。找到“Android Support Library“所对应的版本。
15. 2、找到buildToolsVersion的适合版本。通过Tools→Android→SDK Manager,打开SDK Manager,选择SDK Tools选项卡。找到“Android SDK Build Tools“,使用最新版本即可。
16. 3、升级compileSdkVersiion到与buildToolsVersion匹配的版本。
上篇:上一篇:常州微信小程序-织梦更换服务器搬家教程
下篇:下一篇:常州微信小程序-二叉树深度优先和广度优先