适用于Android模拟器x86的ZeroMQ构建

我建立了zeroMQ under this instruction.
我为android创建了Xamarin项目,从nuget clrzmq包添加并将libzmq.so文件放到文件夹中
libs-&GT armeabi
libs-&GT armeabi-V7A
libs-&GT 86

当我在真实设备上调试应用程序时.它似乎工作.
但是当我在Android emulatior x86(Genymotion)上运行应用程序时.
我捕获DllNotFoundException
并在设备日志中查看消息
找不到libzmq.

我尝试用x86版本的库构建

主机= i686的-Linux的机器人

如何为android-x86架构构建zeromq?

解决方法:

我有类似的问题,请参阅

Mono Android Monodroid Native Library DllNotFoundException

我的问题归结为我使用的NDK版本 – 旧版本看起来效果更好.

编辑:

自从我构建了ZeroMQ的Android版本以来已经有很长一段时间了,但我终于找到了我用来构建它的Ubuntu虚拟机,并在我构建它时找到了shell历史记录:

623 pwd
  624 cd zeromq-2.1.11 /
  625清洁
  626 ./configure –target = x86 –host = x86 LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android -根
  627 ./configure LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android-root
  628 ./configure –target = x86 LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android-root
  629哪个差异
  630 cp config.status config.status.x86
  631 ./configure LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android-root
  632 diff config.status config.status.x86
  633 ./configure –target = x86 –host = x86 LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android -根
  634 ./configure –host = x86 LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android-root
  635 ./configure –target = x86 LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”–prefix = / opt / android-root
  636制作
  637 sudo make install

1174 sudo android-ndk-r5b / build / tools / make-standalone-toolchain.sh –platform = android-5 –install-dir = / opt / android-toolchain
 1175 cd / opt
 1176 ls
 1177 ls -l
 1178 ls
 1179导出PATH = / opt / android-toolchain / bin:$PATH
 1180 cd
 1181 cd e2fsprogs /
 1182 ./configure -target = arm-linux-androideabi -host = arm-linux-androideabi -prefix = / opt / android-root
 1183清洁
 1184制作
 1185干净
 1186 cd lib
 1187 cd uuid /
 1188制作
 1189 sudo make install
 1190 cd
 1191 cd zeromq-2.1.11 /
 1192 ./configure -target = arm-linux-androideabi -host = arm-linux-androideabi LDFLAGS =“ – L / opt / android-root / lib”CPPFLAGS =“ – I / opt / android-root / include”-prefix = /选择/机器人根
 1193清洁
 1194制作
 1195 sudo make install

如上所示,我使用了NDK的r5b版本,并构建了ZeroMQ 2.1.11.我还记得UUID需要构建并用于ZeroMQ 2,但我认为这已经在ZeroMQ 3中出现了问题.

我不记得哪个版本的x86工作不幸,但它可能会给你一个起点.

希望这可以帮助

上一篇:c# – ZeroMQ,由DEALER发送的消息 – >已断开连接的ROUTER不会被丢弃.怎么改变?


下一篇:使用带有voryx Thruway WAMP消息系统的php发送消息