帖子
帖子
用户
博客
课程
显示全部楼层
1
帖子
0
勋章
8
Y币

[superwebview] so库问题求解~ libsec.so" is 32-bit instead of 64-bit

[复制链接]
发表于 2016-6-15 22:08:23
在魅族pro6上面运行闪退

06-15 21:43:13.608: E/AndroidRuntime(7308): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

[DexPathList[[zip file "/data/app/com.yidong.gxw520-2/base.apk"],nativeLibraryDirectories=

[/data/app/com.yidong.gxw520-2/lib/arm64, /data/app/com.yidong.gxw520-2/base.apk!/lib/arm64-v8a, /vendor/lib64,

/system/lib64]]] couldn't find "libsec.so"



然后我给他把7个库都创建齐全了 然后libsec.so贴进去又报错了
06-15 21:35:15.492: E/AndroidRuntime(5594): java.lang.UnsatisfiedLinkError: dlopen failed:

"/data/app/com.yidong.gxw520-2/lib/arm64/libsec.so" is 32-bit instead of 64-bit


跪求大神拯救 在线等
1
帖子
0
勋章
7
Y币
也不讲清楚点
4
帖子
0
勋章
24
Y币
怎么删干净,在哪个目录下
20
帖子
1
勋章
7575
Y币
libs目录下所有文件夹都删除,只保留armabi的库。
1
帖子
0
勋章
8
Y币
常山赵子云 发表于 2016-6-16 10:34
libs目录下所有文件夹都删除,只保留armabi的库。

那就会报错 提示缺少 arm64的库
20
帖子
1
勋章
7575
Y币
本帖最后由 常山赵子云 于 2016-6-16 16:56 编辑

arm64不是必须的,因为它只兼容arm64架构CPU的设备,armabi是完全兼容所有CPU类型设备的。凡是提供arm64的SDK厂商,一定会提供armabi版本。如果是android studio中开发,请将编译so库的配置文件去掉armabi以外的项即可。
1
帖子
0
勋章
8
Y币
常山赵子云 发表于 2016-6-16 16:54
arm64不是必须的,因为它只兼容arm64架构CPU的设备,armabi是完全兼容所有CPU类型设备的。凡是提供arm64的S ...

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

[DexPathList[[zip file "/data/app/com.yidong.gxw520-2/base.apk"],nativeLibraryDirectories=

[/data/app/com.yidong.gxw520-2/lib/arm64, /data/app/com.yidong.gxw520-2/base.apk!/lib/arm64-v8a, /vendor/lib64,

/system/lib64]]] couldn't find "libsec.so"

只保留armeabi的库 还是闪退报错
20
帖子
1
勋章
7575
Y币
偏执的尛鸦 发表于 2016-6-16 17:00
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

[DexPathList[[zip file "/data/app/c ...

你根本就没删掉,这log很明显了,告诉你arm64、arm64-v8a目录下没有libsec.so文件。
百度一下android studio怎么配置编译so库吧。
1
帖子
0
勋章
8
Y币
常山赵子云 发表于 2016-6-16 19:14
你根本就没删掉,这log很明显了,告诉你arm64、arm64-v8a目录下没有libsec.so文件。
百度一下android stu ...

找到问题了 你说的没错  是有64位的库没删干净 在关联的其他库的目录下 有库没删
1
帖子
0
勋章
4
Y币
这个问题我以前遇到过 很简单  其实就是因为目录的原因,因为只要出现了这个目录arm64-v8,系统就只会在这个目录里找.so文件而不会遍历其他的目录,所以就出现了之前找不到.so文件的情况,所以不让出现这个目录就好啦,解决办法
defaultConfig {
         ..........
        ndk {
            abiFilters  "armeabi"  // 指定要ndk需要兼容的架构(这样其他依赖包里mips,x86,armeabi-v7a,arm64-v8之类的so会被过滤掉)
        }
    }
在你不想出现这个目录的模块 打开gradle配置文件defaultConfig选项里面添加abiFilters 过滤掉就好啦
ps 其实armeabi兼容性非常好,现在手机性能这么强大,就不要放其他平台so了,损失的那点性能微不足道,而且安装包还变小了,两全其美
您需要登录后才可以回帖 登录

本版积分规则