Android Studio集成Libgdx LiquidFun报错:无法加载libgdx-liquidfun.so
解决Android端无法加载libgdx-liquidfun.so的问题
看起来你在Android Studio集成LiquidFun时碰到了原生库加载的坑——桌面端跑的好好的,Android端直接因为找不到libgdx-liquidfun.so崩了。从错误日志能看出来,你的设备是arm64-v8a架构,但APK里没包含对应架构的so文件,或者依赖配置没到位。下面是我亲测有效的解决步骤:
1. 补全Android平台的原生库依赖
你只导入了gdx-liquidfun.jar,但Android平台还需要对应的.so原生库文件。别慌,按下面来:
- 找到你下载的LiquidFun完整包,里面应该有
libs文件夹,包含armeabi-v7a、arm64-v8a、x86、x86_64这些子文件夹,每个里面都有libgdx-liquidfun.so - 把这些带so文件的文件夹,直接复制到你的Android模块的
src/main/jniLibs目录下(如果没有jniLibs文件夹,手动新建一个就行)
2. 改用Gradle依赖更靠谱(推荐)
手动导入JAR容易漏掉原生库,不如直接用Gradle管理依赖。打开Android模块的build.gradle(注意是Module级的,不是Project级的),在dependencies块里添加:
implementation "com.badlogicgames.gdx:gdx-liquidfun:$gdxVersion" implementation "com.badlogicgames.gdx:gdx-liquidfun-android:$gdxVersion"
记得把$gdxVersion替换成你项目里用的LibGDX版本,一定要保证LiquidFun和LibGDX版本匹配,不然容易出兼容性问题。
3. 确保APK打包时包含所有需要的ABI
有时候打包时会过滤掉某些架构的so文件,导致特定设备找不到库。在Android模块的build.gradle的android > defaultConfig块里添加:
ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' }
这样打包时就会把这几个主流架构的so文件都包含进去,适配绝大多数设备。
4. 清理缓存重建项目
Android Studio的缓存有时候会搞事情,导致依赖没同步到位。执行这几步:
- 点击工具栏的
Build > Clean Project - 接着
Build > Rebuild Project - 最后重启Android Studio,点击右上角的Sync按钮同步Gradle
5. 手动指定库加载顺序(可选)
如果上面的方法都没用,可以试试手动指定加载顺序,在你的AppClass类里添加静态代码块:
static { // 先加载LibGDX核心库,再加载LiquidFun库 System.loadLibrary("gdx"); System.loadLibrary("gdx-liquidfun"); }
放在create方法之前,确保库的加载顺序正确。
内容的提问来源于stack exchange,提问作者misza
相关产品推荐
相关产品推荐

