AndroidStudio中配置NDK开发环境和编译Fresco

本文详述如何在Android Studio中配置NDK开发环境,并指导编译Fresco源码。通过下载NDK,配置环境变量,解决编译过程中遇到的如'ndk-build'路径错误的问题,最终成功编译Fresco源码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文记录在 AndroidStudio 中配置 NDK 开发环境并编译 Fresco 源码。
有两种方法可以查看 Fresco 的源码,第一种是比较常见的,在AndroidStudio 中通过 Gradle 的 compile 导入 Fresco,然后就能查看 Fresco 的源码了,第二种是通过 下载 github 上的 Fresco 源码,在本地编译使用。两种方法并没有太大区别,稍有不同的就是本地编译的方式可以查看官方给出的demo效果并且项目目录结构比较清晰,方便整理,为了持续深入研究Fresco源码,于是选择第二种方式,在本地编译 Fresco,下面记录了本地编译的过程和遇到的问题以及解决办法

使用工具:

  • OS X 10.11
  • AndroidStudio 1.5.1
  • Fresco 0.7.0

配置NDK

在之前版本的 AndroidStudio (大概是1.3之前)中对 NDK 的支持不是很完善,需要手动下载 Android NDK 并进行相关配置,而在之后的版本中逐渐完善了对 NDK 的支持,可以在 AndroidStudio 的 SDK Manager 中直接下载 NDK 并进行相关配置

下载 NDK

在 AndroidStudio 中首先打开 SDK Manager 找到 SDK Tools 可以看到如下图所示的 Android NDK 如果之前没有勾选,说明还没有下载 NDK 需要勾选然后下载
这里写图片描述

等待下载完成,就可以在sdk目录中看到下载的 ndk 的目录 ndk-bundle:

这里写图片描述

配置环境变量

mac下的环境变量在当前用户目录的 .bash_profile 文件中,因此需要在这个文件中添加 ndk 的环境变量,步骤如下:

  • 定位到.bash_profile文件
    启动终端Terminal,一般默认启动时就是在当前用户的目录,所以接下来直接输入
open .bash_profile

注:如果是第一次使用,可能还没有这个文件,所以需要先创建这个文件

touch .bash_profile
open .bash_profile
  • 添加 NDK 的路径到环境变量中
    添加如下内容到.bash_profile文件中:

export ANDROID_SDK_ROOT=/Users/TC/Dev/Android/sdk
export ANDROID_NDK_ROOT=/Users/TC/Dev/Android/sdk/ndk-bundle
export ANDROID_TOOL=/Users/TC/Dev/Android/sdk/platform-tools
export PATH=$ PATH:$ ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT
export PATH=$PATH:$ANDROID_TOOL

从上面的内容可以看到,其中 ANDROID_SDK_ROOT 这个变量指向的是 sdk 的文件夹路径,而ANDROID_NDK_ROOT变量指向的是 ndk 的文件夹路径,然后还有个ANDROID_TOOL指向的是platform-tools文件夹的路径,接下来保存并退出,在终端执行更新的命令:

source .bash_profile
  • 验证是否添加成功
    在终端执行
ndk-build

如果有反应,则说明配置成功,如下图:
这里写图片描述

编译Fresco

配置好 NDK 后,就可以开始编译 Fresco 源码了,首先从 从github下载Fresco源码 下载完成,开始在 AndroidStudio 中导入项目,首先打开AndroidStudio,选择 File->Open-> 选择 Fresco 文件夹,等待 AndroidStudio 导入并编译,在编译的时候可能会出现一些问题,下面是我遇到的一个问题,以及解决办法:

错误描述:

Execution failed for task ‘:imagepipeline:ndk_build_gifimage’,
> A problem occurred starting process ’ command’ ndk-build”

错误原因:ndk-build 路径错误导致找不到 ndk-build

解决办法:

  • 定位到 Fresco的文件夹下 -> imagepipeline 目录 -> build.gradle 文件
  • 用文本编辑器打开
  • 找到如下代码:
def getNdkBuildName() {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        return "ndk-build.cmd"
    } else {
        return "ndk-build"
    }
}
  • 修改为如下:
def getNdkBuildName() {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        return "ndk-build.cmd"
    } else {
        //将 ndk-build 的路径修改为绝对路径
        return "/Users/TC/Dev/Android/sdk/ndk-bundle/ndk-build"
    }
}

按照以上步骤修改,然后保存,在 AndroidStudio 中 Rebuild 一下,基本就能解决这个问题。

完成以上操作,就能顺利的编译 Fresco 的源码了

参考资料:

Mac可设置环境变量的位置,查看和添加环境变量

Mac os How to build?

Windows os How to build?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值