• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

技术天地

常州微信公众平台-Android Studio工程Gradle报错

原创内容,转载请注明原文网址: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系统(由于此机器还要运行其他程序,为避免兼容性问题,暂未更新到最新,而继续沿用此稳定版),javajdk都是现成的,无需配置。翻墙后从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. 依次选择ToolsAndroidSDK 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.  

依次选择ToolsAndroidSDK 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"的详细版本。通过ToolsAndroidSDK Manager,打开SDK Manager,选择SDK Tools选项卡。找到Android Support Library“所对应的版本

15. 2、找到buildToolsVersion的适合版本。通过ToolsAndroidSDK Manager,打开SDK Manager,选择SDK Tools选项卡。找到Android SDK Build Tools“,使用最新版本即可。

16. 3、升级compileSdkVersiionbuildToolsVersion匹配的版本。

 

 


上篇:上一篇:常州微信小程序-织梦更换服务器搬家教程
下篇:下一篇:常州微信小程序-二叉树深度优先和广度优先