Android-Android studio 导入开源项目以及常见的错误

如何用 Android Studio 导入开源项目以及常见错误的解决办法

本篇以Github上最热门的MaterialDesign库,MaterialDesignLibrary来介绍怎样使用Android Sudio导入开源项目的,如果你和我一样刚刚从Eclipse转到AS,那本篇文章非常适合你。
如果不引入任何第三方库,不做自动化分渠道打包等操作,那可以在完全不了解Gradle的情况下进行Android项目的开发。但如果要想导入Github上的热门项目,必须首先熟悉Gradle。
1. Gradle
Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。
简单来说,Gradle就是Andriod Studio引入的一种自动构建工程的工具,很好的解决了Android项目的构建。大概能解决以下开发过程中的痛点:
不用把第三方库下载下来。以前用Eclipse必须得把第三方库下载下来,然后在自己的项目中引入那个第三方library才行。但使用Gradle,几行代码就搞定第三方库的依赖,降低了耦合性。
不用手动修改N次代码,把代码打N个包发到N个市场。以前可能需要针对不同的渠道发不同的APK文件包,现在只需要在gradle中的几行代码就能一次生成多个渠道包。具体可参考此文章:如何通过Gradle实现一套代码开发不同特性的APK。
如果你用AS新建一个项目,那此项目的默认项目结构如图所示,图中打开的文件是TestMe/build.gradle,已经给出了每句话的含义。
gradle

图中新建项目名为TestMe,使用了Project的目录结构。此目录下可见以下几个gradle文件,分别是:
TestMe/build.gradle,全局gradle,在这个文件里的设置会在整个项目里通用。
TestMe/app/build.gradle,模块的gradle,仅在app模块通用。
TestMe/settings.gradle,用于指定哪个目录是模块model。里面的内容默认是include ‘:app‘,表示app这个文件夹是一个模块。
而TestMe/app/build.gradle文件内容如图所示,具体解释参见图中注释。
gradle

2. 导入MaterialDesignLibrary项目
我们的目标是把MaterialDesignLibrary项目在AS里面成功运行,并在手机上运行成功。
2.1 第一步
首先,用git的clone命令将MaterialDesignLibrary下载到本地。
2.2 第二步
进入AS,File->Import Project,然后找到MaterialDesignLibrary目录,双击该目录下的build.gradle即可导入项目。
2.3 第三步
gradle
可以看导入好的Github上的MaterialDesignLibrary项目包含两个module,包括MaterialDesignDemo和一个MaterialDesign。
MaterialDesign的build.gradle文件第一行为:apply plugin: ‘com.android.library‘,表示这是一个Library。
MaterialDesignDemo的build.gradle文件第一行为:apply plugin: ‘com.android.application‘,表示这是一个应用。
他的这个项目使用的是引用本地已有的MaterialDesign库,而本文第三部分要讲的是引用网上中心库的MaterialDesign库。两种方法都可以,但后一种更加方便更常用,第一种方法不太常用。 第二步之后,可能会出现很多错,通常是因为配置问题,这部分详见本文下面的常见错误。
注意:一定要确保根目录下的setting.gradle里面是include ‘:MaterialDesign‘, ‘:MaterialDesignDemo‘。表示以上两个文件夹都是module。
3. 在自己的项目中引用MaterialDesignLibrary
还是之前的TestMe项目,只需要在TestMe/app/build.gradle中的dependencies中加入compile ‘com.github.navasmdc:MaterialDesign:[email protected]‘即可,如下:
1
2
3
4
5
6
7
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) //多个文件
//compile files(‘libs/foo.jar‘) //单个文件这样写
compile ‘com.android.support:appcompat-v7:22.0.0‘ //编译第三方库
compile ‘com.github.navasmdc:MaterialDesign:[email protected]‘
}
4. 常见错误
AS在导入开源的项目或者第三方库的时候经常会出现的错误如下。其实很多都是各种工具的版本问题。
4.1
Error:failed to find Build Tools revision 21.1.1
Install Build Tools 21.1.1 and sync project
是因为该开源库对应的Build Tools的版本你的AS里面没有。解决方法是点击他的链接进行下载。或者更改每个model里面的build.gradle文件中的buildToolsVersion "21.1.1"为本机里面有的Build Tolls版本。
4.2
Error:failed to find target android-18 : /Users/xujin/develop/adt-bundle-mac-x86_64-20140702/sdk
Install missing platform(s) and sync project
是因为该开源库对应的android sdk的版本你的机器里面没有。解决方法同上,要么下载,要么改改配置。更改每个model里面的build.gradle文件中的compileSdkVersion 21为本机里面有的sdk版本。
4.3
Error:(44, 30) 错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
出错的原因是因为代码中有 List cars = new ArrayList();,java在1.7引入了钻石运算符,解决办法有两种。一是更改编译的java sdk版本,而是将出错代码改为List cars = new ArrayList();
4.4
Error:(37) No resource identifier found for attribute ‘checked’ in package ‘com.gc.materialdesign’
是因为第37行的materialdesign:checked="true",命名空间materialdesign里面没有checked属性,改成check即可,代码如下。(之前遇到过,姑且说说。)
1
2
3
4
5
6
7
8

参考资料
importing-libraries-into-android-studio
Android Studio系列教程四—Gradle基础
MaterialDesignLibrary

时间: 2024-10-13 16:21:35

Android-Android studio 导入开源项目以及常见的错误的相关文章

如何用 Android Studio 导入开源项目以及常见错误的解决办法

声明:这篇文章完全来自这篇文章,感谢大神的相助.这篇文章纯粹是为了备份. 本篇以Github上最热门的MaterialDesign库,MaterialDesignLibrary来介绍怎样使用Android Sudio导入开源项目的,如果你和我一样刚刚从Eclipse转到AS,那本篇文章非常适合你. 如果不引入任何第三方库,不做自动化分渠道打包等操作,那可以在完全不了解Gradle的情况下进行Android项目的开发.但如果要想导入Github上的热门项目,必须首先熟悉Gradle. 1. Gra

Android studio导入开源项目

前几天从github上下载一个开源项目,发现他并不是以前Eclipse那种的目录结构 而是最近在用到的android studio的文件目录.从上图中我们可以看到多次出现了gradle这个单词.Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,所以对于这个组合我们一起来了解一下. 1.什么是gradle Gradle是以groovy语言为基础,面向Java应用为主.基于DSl(领域特定语言)语法的自动化构建工具.这是百度百科的解释,

Android studio导入Eclipse项目,和一些错误的解决

Android studio导入Eclipse开发的项目步骤如下 如果已经打开Android studio的话就选择你已打开的项目,关闭然后导入 开始导入 导入完成. 2.项目出错 Error:(134, 3) 错误: 找不到符号符号:   变量 Palette位置: 类 MainActivityError:(18, 35) 错误: 程序包android.support.v7.graphics不存在Error:(134, 44) 错误: 程序包Palette不存在 打开app的build.gra

Android Studio导入Fresco项目编译报错unable to expand TAR 'imagepipeline\build\downloads\libjpeg-turbo-1.3.1.tar.gz'解决

把github上的一个Fresco的demo源码clone到本地(附clone地址:https://github.com/facebook/fresco.git),导入这个fresco项目编译报了如题所示的错.经过网上搜索解决方案,只找到了下面链接给的解决方案: unable to expand TAR 'imagepipeline\build\downloads\libjpeg-turbo-1.3.1.tar.gz解决 按照上面链接给的方法试了一下,结果无法解决.还是报同样的错误.然后我试着去

Android二维码开源项目zxing用例简化和生成二维码、条形码

上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的测试程序:CaptureActivity比较复杂,我只要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自不必说了. 自带的例子,目录结构如下: 修改后的程序目录结构,去掉了很多功能,如果分享.设置等. 先上效果图          扫描ZXing生成的条形码和二维码结果 扫描界面 扫描商品的条码 整个程序只修改了以下两个类,其它都是直接从原来的Demo中复制出来的 生成二维码的代码 /** * 生成二维

AndroidStudio 导入imageloader项目lib包,错误处理

使用AndroidStudio时候导入开源项目ImageLoader lib包时,出现错误 Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: E:\android_studio\sdk_studio\android-sdk-windows\build-tools\21.1.1\dx.bat -

Android Studio导入Eclipse项目和一些常见的问题

Android Studio版本 Eclipse项目工程:一个主工程,一个Emojicon依赖库. 有两种方式导入Eclipse工程: 1.兼容Eclipse 2.全新的Android Gradle Project Google推荐用全新的方式,所以此处不介绍兼容模式导入. 请先关闭Android Studio当前的Project,否则你看不到Import Project. 选择“Import project(Eclipse ADT, Gradle, etc.)”,定位到你所需要导入的工程的主目

Android studio导入eclipse项目且不改变目录结构

Android studio的安装与配置论坛当中已经有很多在此就不在细说了,现在开始说下如何在Android studio当中导入eclipse的项目且不改变其目录结构和配置,让使用eclipse的同学也可以继续使用,当然使用android studio的同学也可以使用.废话少说上图 1. 使用open的方式打开一个已经存在的android项目(eclipse创建的) 2. 在项目属性当中配置sdk版本和output路径 3. 第三步很重要分为9个步骤,主要操作是先删除第一次打开项目的时候导入的

Android studio 导入Eclipse项目 Vitamio播放器报错

由于Vitamio播放器更新到5.0,需要更新其依赖库,但是坑爹的是,此依赖库是Eclipse项目,导入过程如下: 首先:打开项目配置 进入到以下页面: 如图所示 点击+号 选择import Eclipse ADT Project 接下来一步步next即可 导入后不出意外,一堆的报错,主要是gradle不能被正确配置,看来studio智商有限呀!! 我们来帮帮他, 先看看出了哪些错误: 无法找到这个配置 compileSdkVersion Integer.parseInt(project.AND