Android移植NDK子项目--以android-gif-drawable为例

本文介绍了在Android项目中移植NDK子项目android-gif-drawable的三种方法:直接添加依赖、使用aar包和导入源码。详细讲述了在遇到不同CPU架构的so库缺失问题时的解决策略,包括修改NDK版本、裁剪aar包内容以及调整子项目的编译选项,以避免加载so库失败的异常。

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

前言:

一些非常优秀的开源项目引入起来都是比较麻烦的,麻烦到都可以写一篇博客来引导后来人少踩坑的程度。我在最近一次项目中想要做一个GIF的展示功能,光是引入著名的gifhub开源项目android-gif-drawable就花费了一番功夫,今天把我踩过的坑都记录一下,提醒一下准备使用这个开源库的盆友。

GIF三方库引入方式:

方式一:直接添加dependence

这种方式在Android studio中最简单的一种方式,只需打开build.gradle文件,加入这一句话即可。一般我引入三方库都直接使用这样的方法,简便快捷,仅需一行就完成了依赖的部署,然后clean一下项目就可以使用依赖库里的类和方法了。

dependencies {
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+'
}
但是我这样引入以后再运行阶段出现一个crash 异常,如下:

AndroidRuntime: FATAL EXCEPTION: DBExecutor #1
        Process: com.demo.app, PID: 15616
        java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/com.demo.app-2/base.apk"],nativeLibraryDirectories=[/data/app/com.demo.app-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "xxxx.so"
        at java.lang.Runtime.loadLibrary(Runtime.java:366)
        at java.lang.System.loadLibrary(System.java:988)
        at com.demo.utils.JConstantUtils.<clinit>(Unknown Source)
        at com.demo.handler.bk.<init>(Unknown Source)
        at com.demo.handler.bj.f(Unknown Source)
        at com.demo.handler.aq.a(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值