couldn't find mysql server_Flutter 打包apk后运行错误:couldn't find "libflutter.so"_flut...

FLutter 在使用命令:

flutter build apk

打包或者是用Android Studio直接打包如果so配置错误会出现以下问题:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data

/app/com.cgmcomm.cgmstore-zq4F04l4AacKP5RCViCs2Q==/base.apk"],nativeLibraryDirectories=

[/data/app/com.cgmcomm.cgmstore-zq4F04l4AacKP5RCViCs2Q==/lib/arm64, /data/app

/com.cgmcomm.cgmstore-zq4F04l4AacKP5RCViCs2Q==/base.apk!/lib/arm64-v8a, /system/lib64]]]

couldn't find "libflutter.so"

主要原因是在flutter.gradle中有这一段配置:

Path baseEnginePath = Paths.get(flutterRoot.absolutePath, "bin", "cache", "artifacts", "engine")

String targetArch = 'arm'

if (project.hasProperty('target-platform') &&

project.property('target-platform') == 'android-arm64') {

targetArch = 'arm64'

}

debugFlutterJar = baseEnginePath.resolve("android-${targetArch}").resolve("flutter.jar").toFile()

profileFlutterJar = baseEnginePath.resolve("android-${targetArch}-profile").resolve("flutter.jar").toFile()

releaseFlutterJar = baseEnginePath.resolve("android-${targetArch}-release").resolve("flutter.jar").toFile()

dynamicProfileFlutterJar = baseEnginePath.resolve("android-${targetArch}-dynamic-profile").resolve("flutter.jar").toFile()

dynamicReleaseFlutterJar = baseEnginePath.resolve("android-${targetArch}-dynamic-release").resolve("flutter.jar").toFile()

if (!debugFlutterJar.isFile()) {

project.exec {

executable flutterExecutable.absolutePath

args "--suppress-analytics"

args "precache"

}

if (!debugFlutterJar.isFile()) {

throw new GradleException("Unable to find flutter.jar in SDK: ${debugFlutterJar}")

}

}

flutter.gradle路径是

"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"flutterRoot是本机flutter安装路径

上述代码说明了当目标是 arm64 的时候, 会自动将 64 的 so 打包到 flutter 内, 这里的问题就造成了以前你在自己的 gradle 设置的打包选项和这个同时生效,也就是 v7 v8 的 so 都不进 apk 里了…

解决方案是在app的build.gradle中修改如下:

defaultConfig {

……

//        ndk {

//            //选择要添加的对应 cpu 类型的 .so 库。

//            abiFilters "arm64-v8a","armeabi", "armeabi-v7a", "x86", "x86_64"

//            // 还可以添加

//        }

打包的时候注释掉defaultConfig中ndk的配置

}

buildTypes {

release {

……

ndk {

//选择要添加的对应 cpu 类型的 .so 库。

//                abiFilters "armeabi-v7a"

abiFilters  "armeabi-v7a"

// 还可以添加

}

}

debug {

ndk {

//选择要添加的对应 cpu 类型的 .so 库。

//                abiFilters "armeabi-v7a"

abiFilters  "armeabi-v7a"

// 还可以添加

}

minifyEnabled false

signingConfig signingConfigs.release

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值