运行Fresco Demo问题点记录

今天一时兴起,想看看Fresco的源码,本以为Download下来see see是很轻松的事儿。先不说生在天朝的苦恼了,单就运行下Demo都绝非易事。博主借此记录下自己运行Demo遇到的问题点,希望能帮助到朋友们。

运行源码的环境

  • 源码版本:commit df2854a
  • 操作系统:OS X 10.9.5
  • Android Studio 版本:2.1 preview 4
  • NDK Toolchain版本:4.9

问题点描述

一、 在执行imagepipelinendk_clean_bitmaps时无法启动ndk-build:

Error:Execution failed for task’:imagepipeline:ndk_clean_bitmaps’.A problem occurred starting process ‘command ‘ndk-build”

查看imagepipelinebuild.gradle文件,我们看到getNdkBuildFullPath就是获取ndk_build的文件目录,通过查看代码我们不能发现,只要能让该方法获取到正确的NDK目录即可,SO 我们就在该模块的gradle.property文件中添加ndk.path

ndk.path=/your/ndk/directory

补充: statik-webp模块也存在同样的问题,按照上述方式修改之。

二、 类似toolchains下的xxx-4.8等目录下的文件或目录找不到,如:

make: /your/ndk/directory/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++: No such file or directory

由于博主下载的是最新的ndk包,其toolchains是4.9版本,所以会提示上述的错误信息。这是我们只要修改下模块下的编译脚本即可,比如:

  • 打开imagepipeline/src/main/jni目录下的Application.mk文件
  • 搜索NDK_TOOLCHAIN_VERSION关键字,将其值修改为你自己的toolchain版本,如NDK_TOOLCHAIN_VERSION = 4.9

补充: statik-webp模块也存在同样的问题,按照上述方式修改其模块的Application.mk文件即可。

三、 libwebp.so文件重复,类似信息:

[armeabi-v7a/libwebp.so] fresco/imagepipeline/build/webpimage/armeabi-v7a/libwebp.so [armeabi-v7a/libwebp.so] fresco/imagepipeline/build/imagepipeline/armeabi-v7a/libwebp.so: Error: Duplicate resources

从上面的信息中我们看到,webpimageimagepipeline同时编译了libwebp.so包。定位到问题就好解决了。打开imagepipelineAndroid.mk文件(imagepipeline/src/jni/imagepipeline目录),在文件末尾,注释到下面这行即可:

$(call import-module,libwebp-0.4.3)

即,修改为:

#$(call import-module,libwebp-0.4.3)

再次运行Demo,就可以看到可爱的运行界面啦。

以上即为本博主运到的问题,欢迎朋友们留言交流。

你可能感兴趣的:(Android)