在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
但是我把应用卸掉,然后直接安装又能正常运行。