In GDAL 1.8.1 I'm attempting to call GetMetadataItem() within the context of an Android 2.2 Java app, but I'm getting an error, specifically
08-10 22:13:41.750: WARN/dalvikvm(546): JNI WARNING: jstring 0x40569100 points to non-string object (Check_GetStringUTFChars) An access violation error follows this. I've successfully opened the image and have a valid Dataset object. I've debugged my way through the JPIPKAKDataset initialization method so I'm pretty confident that much is working properly. I don't know if this is a problem with the swig bindings or something else. I hope someone's run into this one before. My Java code is really straightforward: public int getDecompositionLevels() { if (gdalDataset != null) { String key = "JPIP_NRESOLUTIONLEVELS"; String domain = "JPIP"; return Integer.parseInt(gdalDataset.GetMetadataItem(key, domain)); } else { return -1; } } This corresponds to the API definition found here: http://gdal.org/java/org/gdal/gdal/MajorObject.html#GetMetadataItem(java .lang.String, java.lang.String) I've also tried the variant that uses a default domain string with the same error as a result. I'm using the gdal_wrap.cpp generated in the swig/java directory along with corresponding gdal.jar file. The org.gdal.gdal.MajorObject.java class defines the interface as public String GetMetadataItem(String pszName, String pszDomain) { return gdalJNI.MajorObject_GetMetadataItem__SWIG_0(swigCPtr, this, pszName, pszDomain); } The swig interface file MajorObject.i defines this as /* * GetMetadataItem */ %apply Pointer NONNULL {const char * pszName}; const char *GetMetadataItem( const char *pszName, const char *pszDomain = "" ) { return GDALGetMetadataItem( self, pszName, pszDomain); } While the generated gdal_wrap.cpp is SWIGINTERN char const *GDALMajorObjectShadow_GetMetadataItem__SWIG_0(GDALMajorObjectShadow *self,char const *pszName,char const *pszDomain=""){ return GDALGetMetadataItem( self, pszName, pszDomain); } I've found a thread discussing a similar issue under the android-ndk group, but without the swig component: http://groups.google.com/group/android-ndk/browse_thread/thread/27e83cdf 168bc0bb/db151ea4c15362c5?show_docid=db151ea4c15362c5 I infer from that discussion that either the GDAL interface definition file needs to be tweaked or I need to use javah instead of swig. I'm still new to all of this (including GDAL) so assume I'm missing something blatantly obvious. Thanks for any help, Jim P.
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev