シンプルなostreamおよびstreambufクラスを実装しました。何らかの理由で、AndroidLogOStreamオブジェクトをインスタンス化しようとするとクラッシュします。C++ - アンドロイド上でostreamクラッシュを継承しますがウィンドウは継承しません。
注:私は私のApplication.mkに
class AndroidLogStreamBuf : public std::streambuf
{
public:
inline AndroidLogStreamBuf() : std::streambuf()
{
//std::cout << "asdfg";
}
inline ~AndroidLogStreamBuf()
{
}
};
class AndroidLogOStream : public std::ostream
{
public:
inline AndroidLogOStream() : std::ostream(&mBuf)
{
}
inline ~AndroidLogOStream()
{
}
private:
AndroidLogStreamBuf mBuf;
};
をstlport_staticを持っていることは必要最小限だし、それはWindows上で正常に動作します。それはアンドロイドでうまくコンパイルされますが、何らかの理由でクラッシュします。それが実行しようと最後の行は_streambuf.cである:46:
私は入出力ストリームにまだかなり混乱していますが、それはコンストラクタと間違って何かでなければならない、私はそれが有効でないと仮定確かtemplate <class _CharT, class _Traits>
locale
basic_streambuf<_CharT, _Traits>::pubimbue(const locale& __loc) {
this->imbue(__loc); <---- crash
locale __tmp = _M_locale;
_M_locale = __loc;
return __tmp;
}
?
いくつかの便利なリンクについては、[この古い回答](http://stackoverflow.com/a/528661/440558)を参照してください。 –
なぜアンドロイドとC++タグ?私はC + + 1を得ることができますが、他の人はいません! –
アンドロイドでアンドロイドでndkを実行しています:p – KaiserJohaan