【发布时间】:2012-03-17 22:48:05
【问题描述】:
我已经实现了一个简单的 ostream 和 streambuf 类。出于某种原因,当我尝试实例化我的 AndroidLogOStream 对象时它会崩溃。
注意:我的 Application.mk 中有 stlport_static
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;
};
它是准系统,在 Windows 上运行良好。它在android上编译得很好,但由于某种原因它崩溃了。它尝试执行的最后一行在 _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;
}
虽然我对 iostreams 仍然很困惑,但它一定是构造函数有问题,我想它是无效的?
【问题讨论】:
-
查看this old answer 获取一些有用的链接。
-
为什么是android和c++标签?我可以得到 C++ 一个,但不是另一个!
-
我正在使用 android ndk 在 android 上运行它:p
标签: android c++ windows io iostream