1
VYSE 2016-11-18 10:34:35 +08:00 via Android
你得加安卓的 linker ,依赖库如 bionic 甚至 framework
|
2
soulshell 2016-11-18 11:05:51 +08:00
缺少很多必要的概念
so 文件是二进制文件,编译后和体系架构相关的,不同的体系架构下要有对应的 so 文件,用 file 或者 readelf 看下就知道了,你在 x86 上调试 android 的代码,最典型的的做法是 google 帮你做了 studio 里面用的 qemu ,将 x86 的汇编转换成 arm 的汇编进行执行的 qemu 使用了 qemu 的 binary translation 的机制导致你在 x86 上运行 arm 的的代码会很慢,现在看起来你是想在 x86 上直接运行针对 x86 的 android app ,也可以,但是因为指令差别,只能在 x86 的手机上跑,无法测试覆盖到 arm 架构的手机 再往上就是 java 里面的 jni 调用,使用 so 库里面的 c 或者 cpp 的 api ,但是执行 java 的环境是根据 android 里面环境构建的 jvm , bonic 这些,所以你需要把这个 runtime 做一些调整 从下到上,就是这样一个过程 也可以不买手机,你说的那个需求现在也是一门生意,有很多人在做云端的测试平台,可以到 AWS 上找一下 test farm ,可以满足你的需求 |
3
q397064399 2016-11-18 11:13:06 +08:00
尽量能 Java 解决的就 Java 吧,讲真原生的跨平台兼容性太差了
|
4
pangliang 2016-11-18 13:01:00 +08:00
"那个 so 文件是优酷 sdk 里的" "网上找了个支持 x86 的优酷应用,解压将里面的 x86 目录复制过来"
所以你现在用的 so 到底是哪个? 讲道理 sdk 里有就用 sdk 的啊 |
5
garth OP @pangliang sdk 里没有 x86 目录,所以一开始是找不到 so 文件问题,后来,我先是把 sdk 里 armeabi-v7a 复制重命名为 x86 ,就出现了此问题,然后用了支持 x86 的优酷应用里的 so 文件还是一样的问题。
|
6
pagxir 2016-11-18 14:59:55 +08:00 via Android
直接不支持 x86 就 ok 了。 youku 官方都不支持,啥折腾是无用功
|
7
pubby 2016-11-18 15:11:42 +08:00 via Android
x86 手机很多吗?
|
8
reus 2016-11-18 15:56:03 +08:00
那些 x86 cpu 的安卓系统,其实是 cpu 支持指令集转换,用的还是 arm 的 apk 啊
|