Android NDK-AAssetManager崩溃

问题描述

我的AAssetManager有JNI代码。有时,我可以在Google Play控制台中看到以下错误:

3 John
2 William

#00 pc 00000000000223bc /system/lib64/libc.so (abort+116) #01 pc 00000000000934e8 /system/lib64/libc.so (__fortify_fatal(char const*,...)+120) #02 pc 0000000000092b50 /system/lib64/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*,char const*)+52) #03 pc 00000000000929cc /system/lib64/libc.so (pthread_mutex_lock+228) #04 pc 00000000000acfe8 /system/lib64/libc++.so (std::__1::mutex::lock()+8) #05 pc 0000000000010a7c /system/lib64/libandroid.so (AAssetManager_open+64) #06 pc 00000000002870fc /data/app/com.company.game-pQJ8F8k_RlY7Xj6moTsxGg==/lib/arm64/libgame.so (AndroidUtils::AssetFopen(char const*,char const*)+36) 的代码是这样的:

AndroidUtils:AssetFopen

静态变量AAssetManager* AndroidUtils::android_asset_manager = nullptr; FILE* AndroidUtils::AssetFopen(const char* fname,const char* mode) { #if defined(DEBUG) || defined(_DEBUG) if(mode[0] == 'w') return nullptr; #endif if (android_asset_manager == nullptr) { return nullptr; } AAsset* asset = AAssetManager_open(android_asset_manager,fname,AASSET_MODE_BUFFER); if(!asset) { return nullptr; } return funopen(asset,AndroidUtils::AssetRead,AndroidUtils::AssetWrite,AndroidUtils::AssetSeek,AndroidUtils::AssetClose); } 是通过android_asset_manager的JNI直接设置的。

任何想法会导致这种情况吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...