[osg-users] A problem with regard to std:istream on Android

龚来恩 8802661 at qq.com
Thu May 25 23:06:16 PDT 2017

Hi All,
    I'm trying to make osgEarth run on Android (OSG 3.2 & osgEarth 2.3). Now the earth can display on Android system. But I run into a problem with regard to std:istream. I tried to load an osgb file by the following code
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("/sdcard/WV/Models/tk.osgb");
the variable node's value is always be NULL.  I step into this line and traced down to file ReaderWriterOSG2.cpp
virtual ReadResult readNode( const std::string& file, const Options* options ) const
        ReadResult result = ReadResult::FILE_LOADED;
        std::string fileName = file;
        std::ios::openmode mode = std::ios::in;
        Options* local_opt = prepareReading( result, fileName, mode, options );
        if ( !result.success() ) return result;

        osgDB::ifstream istream( fileName.c_str(), mode );
        return readNode( istream, local_opt );

virtual ReadResult readNode( std::istream& fin, const Options* options ) const
        osg::ref_ptr<InputIterator> ii = readInputIterator(fin, options);
        if ( !ii ) return ReadResult::FILE_NOT_HANDLED;

        InputStream is( options );
        if ( is.start(ii.get())!=InputStream::READ_SCENE )
            return ReadResult::FILE_NOT_HANDLED;

        is.decompress(); CATCH_EXCEPTION(is);
        osg::Node* node = dynamic_cast<osg::Node*>(is.readObject()); CATCH_EXCEPTION(is);
        return node;

the debugger couldn't step into the function readNode( std::istream& fin, const Options* options ). But on windows it works.

Can anybody tell me how to solve this problem?

Dev Environment:
    Visual Studio 2017
    Android 7.0
    Android NDK64 r13b
    Arch arm64-v8a

Best regards.


osg-users mailing list
osg-users at lists.openscenegraph.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20170526/9a0eae9f/attachment-0002.htm>

More information about the osg-users mailing list