Android と iOS 用のクロスプラットフォーム アプリケーションを構築しようとしていますが、Boost を使用して通信を簡素化し、応答から JSON を解析することにしました。iOS ではすべて正常に動作しますが、クエリをquery(server, "");
.
私は自分のアプリケーションからコードを引き出し、エラーをスローしていたものに単純化しました。これが私が持っているものです:
...
#include <boost/asio.hpp>
boost::asio::io_service io_service;
std::string server = "<server_address>";
// Get a list of endpoints corresponding to the server name.
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(server, "http");
boost::system::error_code ec;
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query,ec);
if (ec)
{
return env->NewStringUTF(ec.message().c_str());
}
Android NDK r8e (64 ビット) と Boost バージョン 1.53 (執筆時点での最新リリース) を使用しています。私はhttps://github.com/MysticTreeGames/Boost-for-Androidをわずかに変更して 64 ビット NDK で動作するようにしました ( https://github.com/MysticTreeGames/Boost-for-Android/pull/28を参照)。 ) 必要な Boost ライブラリを構築するため。
async_resolve
この部分が動作するようになったら、iOS バージョンで使用されている で動作するようにこれを変更します。
編集:
Android マニフェスト ファイルを更新するのを忘れていたことに気付いたので、 を追加しまし
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
たが、それでも同じエラーが発生します。マニフェストに何か他のものが欠けているだけですか?