本文记录一次 Android Studio 导入 Github 项目的全过程 (以 LDrawer-master 为例),按照错误的出现顺序,给予解决方案。随着导入的项目不断增多,本文会一直更新。

准备工作

新建一个 AS 的 Project ,创建时按下面的标准选择 SDK :

Minimum SDK: 14
Compile SDK:23 (已有的最高版本)
Target SDK:23 (已有的最高版本)
建议: Minimum SDK < Compile SDK == Target SDK

将里面的配置信息找出来待用。

第一:取出各种版本号

  1. 找到 /gradle/wrapper/gradle-wrapper.properties ,取出当前系统已有的 gradle 版本:gradle-2.4-all

  2. 找到 /build.gradle 中的 classpath ‘com.android.tools.build:gradle:1.3.0’,取出当然 as 的 gradle 插件的版本号:1.3.0

  3. 找到 /app/build.gradle 中的 compileSdkVersion,buildToolsVersion,minSdkVersion,targetSdkVersion 等版本号
    我的如下:
    buildToolsVersion “23.0.2”
    minSdkVersion:14
    compileSdkVersion:23
    targetSdkVersion:23

备用

第二:取出你的gradle支持的方法名

  1. 取出 /app/build.gradle 中的下面代码:
buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }
  1. 取出你的gradle调动中央仓库方法名
 buildscript { repositories { jcenter() }  }

备用

开始导入

Eclipse是将项目导入到事先创建好的工作空间,而AS导入时候直接将当前目录作为它的工作空间,所以导入前应该备份。

导入方法

打开 AS -> 选择 (Import project(Eclipse ADT, Gradle etc))-> 选择目录

导入后,gradle 自动进行编译,报出一大堆错误,下面就开始解决问题了

解决问题

第一个问题

Could not find com.android.tools.build:gradle:0.11.2

是什么?

AS 无法找到对应版本的 Gradle 插件

为什么?

首先得知道Gradle插件和Gradle是不同的东西,前者是安装在 Android Studio 上的插件(如: GsonFormat、ButterKnife Zelezny 等)用来连接系统中的 Gradle;后者是安装在系统中的 Gradle,是一个构建工具,被用来编译、构建 Android 项目。

Gradle 插件和 Gradle 相当于 ADT 和 SDK 。AS 在执行编译时,第一步就是用插件连接 Gradle,所以会检查的插件是否存在。

怎么做?

将之前准备好的 ‘com.android.tools.build:gradle:0.12.2’ 替换 /build.gradle 中的 classpath 值。

完成后,按 Ctrl+F9 重新构建

第二个问题

Error:failed to find Build Tools revision 20.0.0

是什么?

Gradle 无法找到对应版本的编译工具 (Build Tools)

为什么?

每个 SDK 版本都有对应的编译工具,最好跟 compileSdkVersion 对应。可以打开 SDK Mananger 查看所有安装的编译工具:

怎么做?

将之前准备好的 buildToolsVersion “23.0.2” 替换 /app/build.gradle 中的 buildToolsVersion 值。
注意:所有的 Module 都要改

不建议直接点图中的“Install Build Tools 20.0.0 and sync project”,会下载插件,得花不少时间。

当然如果你时间充裕,那还是下载一下吧。以后再导入这个版本的项目,就轻松一些。

完成后,按 Ctrl+F9 重新构建

第三个问题

The project is using an unsupported version of the Android Gradle
plug-in (0.12.2). The recommended version is 1.3.0.

是什么?

你选择的 Gradle 插件的不能连接这个版本的 Gradle

为什么?

新的 Gradle 要使用新的 Gradle 插件来连接

怎么做?

点击错误提示中的 Fix plugin version and sync project ,下载一个最新版本

完成后,按 Ctrl+F9 重新构建

第四个问题

Error:Unable to load class
‘org.codehaus.groovy.runtime.StringGroovyMethods’.

是什么?

无法加载 ‘org.codehaus.groovy.runtime.StringGroovyMethods’. 类

为什么?

因为刚才已经把插件版本改成 1.3.0 了,但是没有修改 Gradle 的版本(/gradle/wrapper/gradle-wrapper.properties),里面的版本还是gradle-1.12-all

怎么做?

把这个版本号改成刚才准备好的版本号:gradle-2.4-all

完成后,按 Ctrl+F9 重新构建

第五个问题

Error:(16, 0) Gradle DSL method not found: ‘runProguard()’

是什么?

Gradle DSL 解释器没有找到 runProguard 方法

为什么?

很简单,runProguard 方法是旧版本的 gradle ,新版本改成 minifyEnabled

怎么做?

修改 /app/build.gradle 文件的 android->buildTypes->release (或debug)->修改 runProguard 为 minifyEnabled
注意:所有的Module都要改

完成后,按 Ctrl+F9 重新构建

第六个问题

Error:Library projects cannot set applicationId. applicationId is set
to ‘com.ikimuhendis.ldrawer’ in default config.

是什么?

类库工程不能被设置 applicationId, applicationId 已经被设置在 ‘com.ikimuhendis.ldrawer’ 工程的默认配置里

为什么?

这个原因,我也不是很清楚,我猜测旧版本 Gradle 的 applicationId 可以设置多次,而新版本的 Gradle 只能在一个 Application Module 中设置。

具体请看:StackOverflow

怎么做?

删除库 Module/build.gradle 中的 defaultConfig->applicationId即可

完成后,按 Ctrl+F9 重新构建

待完善…

最后

关于搜索

这几个错误折腾了我很久,百度真不靠谱。百度搜点娱乐八卦还行,搜技术不行。能用 Google 就别用百度。

更多相关文章

  1. android studio 编译高级篇-gradle多版本编译,定制任务
  2. Android(安卓)Notification 通知的使用,不同版本兼容问题
  3. 一统天下 Google着手Android多版本题目
  4. 新版eclipse中NDK环境搭建(免Cygwin,超级快)
  5. Android(安卓)APK升级代码编写心得
  6. Android中出现 Error:In declare-styleable FontFamilyFont, una
  7. Android(安卓)通过DownloadManager实现自动更新的demo
  8. Android(安卓)4.0新特性总结
  9. android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个

随机推荐

  1. Android下拉列表控件spinner-andoid学习
  2. Android(安卓)Dialog自定义宽高
  3. android 打开文件
  4. Android之Touch事件分发机制
  5. Android音乐播放器简单示例
  6. Android(安卓)计时器,定时功能
  7. android 图片LOMO效果
  8. Android(安卓)kotlin使用注解实现防按钮
  9. android项目源码异步加载远程图片的小例
  10. Android(安卓)Studio 使用NDK编译时常见