安装freerasp包后Flutter应用启动失败,报libpolarssl.so缺失错误
问题解决:freerasp初始化导致Android闪退(找不到libpolarssl.so)
问题重现
在pubspec.yaml中安装freerasp包后,在页面initState中添加以下初始化代码:
Future<void> initSecurityState() async { TalsecConfig config = TalsecConfig( androidConfig: AndroidConfig( expectedPackageName: 'com.my.package', expectedSigningCertificateHashes: [ 'JsiruehgNueuejBevbeuUuw4tkiJU=' ], ), watcherMail: 'email@gmail.com', ); TalsecCallback callback = TalsecCallback( androidCallback: AndroidCallback( onRootDetected: () => print('root'), onEmulatorDetected: () => print('emulator'), onHookDetected: () => print('hook'), onTamperDetected: () => print('tamper'), onDeviceBindingDetected: () => print('device binding'), onUntrustedInstallationDetected: () => print('untrusted install'), )); TalsecApp app = TalsecApp( config: config, callback: callback, ); app.start(); }
重启应用后直接闪退,核心错误日志为:
E/AndroidRuntime(11051): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.revens.mini.casino-2/base.apk"],nativeLibraryDirectories=[/data/app/com.revens.mini.casino-2/lib/x86, /data/app/com.revens.mini.casino-2/base.apk!/lib/x86, /system/lib, /vendor/lib, /data/downloads, /data/priv-downloads]]] couldn't find "libpolarssl.so"
注:日志中的音频/视频格式警告(如Unsupported mime audio/dts)与闪退无关,可忽略。
解决步骤
1. 清理构建缓存
执行以下命令彻底清理Flutter和Android的缓存文件:
flutter clean rm -rf android/.gradle flutter pub get
2. 升级freerasp到最新稳定版
打开pubspec.yaml,将freerasp的版本更新为当前最新稳定版,例如:
dependencies: flutter: sdk: flutter freerasp: ^6.0.0 # 替换为实际最新版本
更新后执行flutter pub get。
3. 配置Android支持的原生架构
打开android/app/build.gradle,在android/defaultConfig节点下添加NDK架构过滤,只保留主流支持的架构:
android { defaultConfig { // 其他配置... ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64' } } }
如果需要在x86模拟器上测试,需确认freerasp是否提供x86架构的原生库,若不支持则移除x86。
4. 重新构建运行
执行命令重新构建并启动应用:
flutter run
内容的提问来源于stack exchange,提问作者Alexandr
相关产品推荐
相关产品推荐

