我构建zeroMQ under this instruction。我为安卓创建了Xamarin项目,从nuget clrzmq包中添加,并将libzmq.so文件放到文件夹中
libs->armeabi libs->armeabi-v7a libs->x86
当我在真实设备上调试应用程序时。它似乎起作用了。但是当我在Android模拟器x86 (Genymotion)上运行应用程序时。我捕获了DllNotFoundException,并在设备日志库中看到消息未找到。
我尝试使用x86版本的库构建,如下所示
--host=i686-linux-android
如何为android-x86架构构建zeromq?
发布于 2014-04-14 20:06:30
我也有类似的问题,请看
Mono Android Monodroid Native Library DllNotFoundException
我的问题归结为我使用的NDK版本--旧版本似乎工作得更好。
编辑:
我已经很久没有构建安卓版本的ZeroMQ了,但我终于找到了我用来构建它的Ubuntu虚拟机,并找到了我构建它时的外壳历史:
623 pwd 624 cd zeromq-2.1.11/ 625 make clean 626 ./configure --target=x86 --host=x86 LDFLAGS="-L/opt/android-root/lib" CPPFLAGS="-I/opt/android-root/include" --prefix=/opt/android-root 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 which diff 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-root 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 make 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 export 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 make clean 1184 make 1185 make clean 1186 cd lib 1187 cd uuid/ 1188 make 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=/opt/android-root 1193 make clean 1194 make 1195 sudo make install
如上所述,我使用了NDK的r5b版本,并构建了ZeroMQ 2.1.11。我还记得ZeroMQ 2需要构建和使用UUID,但我认为这在ZeroMQ 3中已经发生了变化。
不幸的是,我不记得哪个版本的x86工作了,但它可能会给你一个起点。
希望这能有所帮助
发布于 2015-03-07 09:40:49
https://stackoverflow.com/questions/23015029
复制相似问题