在android64位平台预置32位apk库文件报错,手动安装又不会报错。有什么区别吗?

愤怒的小熊 2015-08-19 03:10:24
我在预制apk的Android.mk中:
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/app
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/armeabi-v7a/libbspatch.so \
@lib/armeabi-v7a/libHiiirNdk.so \
@lib/armeabi-v7a/libroot.so \
@lib/armeabi-v7a/libuninstalledobserver.so \
@lib/armeabi-v7a/libxdelta3.so
LOCAL_MULTILIB :=32

但是会崩溃报错:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClass
Loader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zi
p file "/system/vendor/operator/app/friDayAppAssistant/friDayAppAssistant.apk"],
nativeLibraryDirectories=[/data/app-lib/friDayAppAssistant, /vendor/lib64, /syst
em/lib64]]] couldn't find "libroot.so"
找不到库文件,然后我就在其他mk文件中把so文件直接导入/system/lib64目录下然后又崩溃报错:
java.lang.UnsatisfiedLinkError: dlopen failed: "/system/lib64/libroot.so" is 32-bit instead of 64-bit

但是我把应用卸掉,然后直接安装又能正常运行。
...全文
3312 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shikai1314156 2018-05-08
  • 打赏
  • 举报
回复
这个问题也困扰了我们很久 后来参考了这篇博客 https://blog.csdn.net/zhjali123/article/details/44834631 亲测有效 感谢一下这位博主
丧尽心 2016-05-31
  • 打赏
  • 举报
回复
同样是这个问题,求解
QQ515311445 2016-05-20
  • 打赏
  • 举报
回复
引用 楼主 u011381950 的回复:
我在预制apk的Android.mk中: LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/app LOCAL_PREBUILT_JNI_LIBS:= \ @lib/armeabi-v7a/libbspatch.so \ @lib/armeabi-v7a/libHiiirNdk.so \ @lib/armeabi-v7a/libroot.so \ @lib/armeabi-v7a/libuninstalledobserver.so \ @lib/armeabi-v7a/libxdelta3.so LOCAL_MULTILIB :=32 但是会崩溃报错: java.lang.UnsatisfiedLinkError: dalvik.system.PathClass Loader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zi p file "/system/vendor/operator/app/friDayAppAssistant/friDayAppAssistant.apk"], nativeLibraryDirectories=[/data/app-lib/friDayAppAssistant, /vendor/lib64, /syst em/lib64]]] couldn't find "libroot.so" 找不到库文件,然后我就在其他mk文件中把so文件直接导入/system/lib64目录下然后又崩溃报错: java.lang.UnsatisfiedLinkError: dlopen failed: "/system/lib64/libroot.so" is 32-bit instead of 64-bit 但是我把应用卸掉,然后直接安装又能正常运行。
我也是碰到了, 咋解决?
soledad10071044 2016-01-11
  • 打赏
  • 举报
回复
一摸一样就的问题,楼主解决了么?求指导1014070176@qq.com
愤怒的小熊 2015-08-21
  • 打赏
  • 举报
回复
sky-Z 2015-08-21
  • 打赏
  • 举报
回复
从出错信息分析,我觉得是这个app被认为是64 bit的了。系统主要是根据apk所使用的native library来决定要用64还是32bit vm的,所以你直接安装的时候是好的,而预装的时候,lib和app的关系不明确,所以不行。 试试两个做法: 1,so就放在apk里面,不要拿出来。 2,so放在apk目录下,例如testapk目录结构如下: vendor/app/testapk/testapk.apk vendor/app/testapk/lib/arm/
愤怒的小熊 2015-08-19
  • 打赏
  • 举报
回复
app是在台湾官网下的,不知道是怎么编的。。
sky-Z 2015-08-19
  • 打赏
  • 举报
回复
getprop看看下面两个prop,是不是这样的,怀疑你的系统是64bit only的 [ro.product.cpu.abi2]: [armeabi] [ro.product.cpu.abi]: [armeabi-v7a]
sky-Z 2015-08-19
  • 打赏
  • 举报
回复
app是用source编译的吧?

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧