<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, May 20, 2013 at 9:26 AM, Jaak Laineste (Nutiteq) <span dir="ltr"><<a href="mailto:jaak@nutiteq.com" target="_blank">jaak@nutiteq.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hello,</div><div><br>
</div>I compiled GDAL 0.10 release for Android, with basic driver package. I left cURL and other more complex dependencies for later. It works with partial success:<div><br></div><div>a) Snags during compiling:</div><div>
 1. had to disable gif driver, as there was "undefined reference to `GIFAbstractDataset::GetMetadataItem". I don't see any real use of that anyway.</div><div> 2. from tif_open.c I removed lines 99 and 100 (asserts for 64bit types), as they appear not to work on 32bit ARMv7 (they assert false). Would it be safe enough? Interesting is that I did not have this problem with GDAL 0.9</div>
</div></blockquote><div><br></div><div style> Jaak,</div><div style><br></div><div style>When using a built-in libtiff build, libtiff uses the GDAL GIntBig and GUIntBig types for 64 bit integers.  So this failure means that the definitions for these types in gdal/port/cpl_port.h are not actually 64bits.  That looks like:</div>
<div style><br></div><div style><div>#if defined(WIN32) && defined(_MSC_VER)</div><div><br></div><div>#define VSI_LARGE_API_SUPPORTED</div><div>typedef __int64          GIntBig;</div><div>typedef unsigned __int64 GUIntBig;</div>
<div><br></div><div>#elif HAVE_LONG_LONG</div><div><br></div><div>typedef long long        GIntBig;</div><div>typedef unsigned long long GUIntBig;</div><div><br></div><div>#else</div><div><br></div><div>typedef long             GIntBig;</div>
<div>typedef unsigned long    GUIntBig;</div><div><br></div><div>#endif</div><div><br></div><div style>What is an appropriate 64bit integer type on Android?  You are likely falling into the case that just uses long and unsigned long which is not great on a 32bit platform.  </div>
<div style><br></div><div style>Note that not getting this type right is likely behind some of the other failures you are seeing.</div><div style><br></div><div style><br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div> 3. Some other tweaks and changes as described in [1] to get also Swig Java bindings working</div><div><br></div><div>b) Runtime problems. Main problem is that some OGR drivers do not open some of test files, even if ogr.GetDriver() reports them. See [2] for reported the list. There is no any error message, and debugging this via Android NDK would be a bit too much for me.</div>
</div></blockquote><div><br></div><div>You could customize error handling to log to a file or some other suitable mechanism from gdal/port/cpl_error.cpp, and also turn on debug output.  For a logging error handler do this near the start of your program:<br>
</div><div><br></div><div style>  CPLSetConfigOption("CPL_LOG", "/tmp/your.log");</div><div style>  CPLPushErrorHandler(CPLLoggingErrorHandler);</div><div style><br></div><div style>to enable debugging output do:</div>
<div style><br></div><div style>  CPLSetConfigOption("CPL_DEBUG", "ON");</div><div style><br></div><div style>I haven't used the logging error handler for a long time so it might be quirkly/broken/wrong.</div>
<div style><br></div><div style>Thanks for reporting on your findings!  </div><div style><br></div><div style>Best regards,</div><div style>Frank</div><div style> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div> 1. Working files: shapefile, esripolygon.json, dxf, csv</div><div> 2. Not working: KML, GML and GeoJSON. By not working I mean Open (<file>,false) returns null.</div><div><br>
</div><div>So my questions:</div><div>1. Is there a way to troubleshoot runtime problems ? org.gdal.gdal.gdal.GetLastErrorMsg() seems to report nothing after Open error. Maybe some dependency missing from compilation?</div>
<div>2. Any hint how to fix tif_open.c problem properly?</div><div><br></div><div>Thank you,</div><div><br></div><div>[1] <a href="https://github.com/nutiteq/gdal/wiki/AndroidHowto" target="_blank">https://github.com/nutiteq/gdal/wiki/AndroidHowto</a></div>
<div>[2] <a href="https://github.com/nutiteq/hellomap3d/wiki/Ogr-layer" target="_blank">https://github.com/nutiteq/hellomap3d/wiki/Ogr-layer</a> </div><span class=""><font color="#888888"><div><br></div><div><br></div><div>
Jaak</div></font></span></div><br>_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>---------------------------------------+--------------------------------------<br>
I set the clouds in motion - turn up   | Frank Warmerdam, <a href="mailto:warmerdam@pobox.com" target="_blank">warmerdam@pobox.com</a><br>light and sound - activate the windows | <a href="http://pobox.com/~warmerdam" target="_blank">http://pobox.com/~warmerdam</a><br>
and watch the world go round - Rush    | Geospatial Software Developer<br>
</div></div>