关于Studio导入Fresco的问题

花了两天时间才将Fresco导入Studio成功,中间遇到不少问题stackoverflow上也没有一个有用的回答

主要问题是:NDK已过时,将在以后版本支持

解决办法:1.安装NDK(版本尽量最新)配置NDK环境

2.imagepipeline Module中的gradle.properties的最后一行添加ndk.path=F\:\\android-ndk-r10c(你的NDK安装地址)

                       

3.整个项目的local.properties文件中添加ndk.dir=F\:\\android-ndk-r10c与sdk.dir=F\:\\studio_sdk_first

4.再在studio的命令行(左下角Terminal)运行gradlew clean,再运行gradlew build

以下的文章是引用 http://www.cnblogs.com/stay/p/4398432.html

大概一周之前,Facebook开源了专为Android系统定制的图片下载缓存工具,当天该消息就上了各大技术论坛网站的头条,也成为了各个技术群里讨论的最主要的话题。也就在当天stay4it的QQ群里面就有人尝试着用Android Studio导入Fresco,折腾了半天还是失败了,发生这种情况的不止一个人,很多人都碰到这样的问题,导入不成功,编译不了,更别说运行了。前两天正好清明节放假,我怀着好奇的心情也尝试了一次,发现确实很麻烦,但是最终还是成功的编译运行了。先分享一下sample运行的效果图,勾引一下大家:

??

现在就把我的导入过程分享给大家,希望大家不要走弯路。本来有想过在我的Android Studio系列视频课程里面再额外增加一节课来专门讲解Fresco的导入,但是想了想还是决定写成博客分享给大家,原因大家往下看就知道了。

先介绍一下我电脑的系统以及环境:

  • Macbook Pro
  • Yousemite
  • Android Studio 1.2 beta (刚刚升级的,大部分人应该还是1.1的版本)
  • Gradle 2.2.1-all

另外你还需要预先下载Android NDK,并且将Android NDK的路径配置到环境变量里面,具体的下载与配置我这里就不再描述了,作为一个优秀的程序员这些都不是问题,记得FQ哦。

??  相信大部分朋友用的是Windows系统,但是由于我本人已抛弃Windows太久,家里的Windows机器已过花甲之年,也已病入膏肓所以就没有在Windows系统上尝试,但是从Github上的Fresco issues来看,Windows的导入还是存在问题的,至少在我写这篇文章的时候还没有解决。由于Facebook的团队都是用Mac或者Linux来开发的,所以Windows上并没有测试过,所以会出现各种各样的bug,这里有一个Github上关于Windows的open
issue
大家可以参考一下或者实时跟进。

??   好了,让我们继续来看Mac上怎么导入的,首先,将Fresco从Github上clone下来。这里跟大家提醒一下,整个导入过程最好FQ,因为在导入以及后面build的时候,有部分资源是必须FQ才能访问的。而且导入以及build的过程比较耗时,需要下载很多相关资源,所以最好确保自己在网络状况良好的情况下尝试导入。这也是我为什么没有录制成视频课程的主要原因。打开Android
Studio,选择Import Project,如图:

??选择你clone下来的Fresco的路径,点击确定,接下来就是一个长时间的下载以及导入的过程,如图:

??这是一个漫长的过程,这段时间大家可以干点别的事情,玩个游戏休息一下或者看看Fresco的中文文档之类的,导入的过程当中主要下载的资源有:

  1. 项目中依赖的jar包 (每个module中的build.gradle文件中依赖的jar包,jcentral或者maven)
  2. 各式各样的插件 (包括1.0.1的gradle插件,基于JVM的自动化测试工具robolectric插件等等,很多)

??当你各种资源下载完成进入到Android Studio的主界面之后,你已经成功了一半了。下一步就是build,这里大家要特别注意,只能用命令行进行build,不能使用菜单栏上面的build->make project或者rebuild project,因为利用后者build会失败。我碰到的报错如下图:

??当然,在碰到上述错误的情况下我也尝试过去搜索解决方案,Github上有这样一条关于[Mac导入build的issue],里面有人提到要将imagepipeline module的build.gradle中的ndk路径全部配成你本地的绝对路径,我尝试了一下,还是失败了,具体错误我就不再贴了,我觉得这里还存在bug,有兴趣的朋友可以关注一下刚提到的issue。

??既然GUI的build不行,我们就用命令行来build,打开Android Studio左下角的terminal tab,检查一下terminal的路径是不是Fresco工程的根目录,因为gradlew和gradle wrapper均在工程的根目录下。接着运行./gradlew clean将工程clean一下,可能你会碰到这样的错误:

??没关系,不用管他,我们可以进行手动clean,将每个module中的build文件夹都删掉就行,其实clean的过程就是如此。删干净之后我们就可以运行./gradlew build了,整个build的过程可以分为三个阶段:

  1. 又是一轮download,主要是imagepipeline中需要一些资源,如图:

  2. 所有资源download成功之后又会进入clonewebp的阶段,这个阶段将会持续一段时间,并且没有任何log出现在命令行,如图:

    注意,在clonewebp的过程当中,如果你没有FQ的话可能会出现这样一个错误,如图:

    大家一看便知为什么会失败,chromium相关的资源,需要从googlesource去download的

  3. 还有一个常见问题也会发生,就是取消lint error的问题,如图:

    解决方案很简单,就是在imagepipeline的build.gradle文件中的android的代码块中添加如下图所示的代码:

??经历过上述三个阶段之后,你的build也应该会成功了,整个build的过程应该在10分钟左右,说实话我也头一次见过build这么长时间的工程。build成功之后应该如下图:

??好了,等你到了这一步,Fresco的导入也完成了,祝贺你成功了,下面我们来运行一下吧:

??大家可以通过Spinner随便选一个加载工具将所有图片和gif下载下来,然后切换加载工具进行比较,你会发现Fresco的缓存加载效率比我们常用的picasso和imageloader高太多,效果太明显了。至于下载速度我个人觉得区别不大,这个跟网络环境有关,就算相同网络环境下的下载速度应该差距不大。

时间: 2024-09-30 10:09:04

关于Studio导入Fresco的问题的相关文章

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 Studio导入Fresco Build失败的解决办法

Android Studio导入Fresco Build失败的解决办法 导入facebook 的 Fresco后,如果发现编译的过程中出现 Error:Execution failed for task ':imagepipeline:ndk_build_bitmaps'. A problem occurred starting process 'command 'ndk-build" 大家可以在 imagepipeline 子项目里面的 gradle.properties 文件中得最后添加 n

Android Studio导入GitHub上的项目常见问题(以图片轮播开源项目为实例)

前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问题. 1.下载项目压缩包 2.由于android studio采用gradle自动构建,而每个项目的gradle版本不一致会导致编译异常,所以要修改开源项目的gradle版本,过程如下 打开自己本地建立工程下的build.gradle文件,将其全部复制. 然后用记事本或其他软件打开开源项目下的bui

android studio - 导入工程报错[Plugin with id 'com.android.application' not found]

出错现象: 大概意思是找不到:com.android.application 插件,以上现象对于初学者来说会经常碰到,下面分析下产生的原因. 原因分析 首先来看看导入后的工程结构: 对于此工程结构,是否有个疑问? 这是未正常同步完成的结构,Gradle Scripts下面似乎少了个 build.gradle ,上图红框部分描述清楚了是 Module: GraphicsDemo ,表示该 build.gradle 是Module的,而不是Project的.来看看一个正常的 Project+Modu

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

如何用 Android Studio 导入开源项目以及常见错误的解决办法 本篇以Github上最热门的MaterialDesign库,MaterialDesignLibrary来介绍怎样使用Android Sudio导入开源项目的,如果你和我一样刚刚从Eclipse转到AS,那本篇文章非常适合你. 如果不引入任何第三方库,不做自动化分渠道打包等操作,那可以在完全不了解Gradle的情况下进行Android项目的开发.但如果要想导入Github上的热门项目,必须首先熟悉Gradle. 1. Gra

Android Studio导入项目的几种方法

本篇教程中使用到的Android Studio版本为1.0, Eclipse ADT版本23.0.4.请尝试更新到该版本. Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目.建议Android Studio导入项目时,使用 Gradle 构建项目. 导入 Eclipse 项目 本例中,使用到的 Eclipse 项目结构如图: e-demo 为主项目, appcompat_v7 为 library 项目. 导入 Generate Gradle

【转载】Android Studio 导入External Libraries

转载: 世军  Android Studio 导入External Libraries http://www.cnblogs.com/shijunzhang/p/5625432.html 导入本地Libraries 拷贝 gson-2.3.1.jar(gson-2.3.1.jar为例)到 app/libs 目录下 在app/build.gradle的 dependencies 中增加一行:compile files('libs/gson-2.3.1.jar') 在线导入Libraries Fil

Android studio 导入github工程

Android studio 导入github工程

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.)”,定位到你所需要导入的工程的主目