2016-12-21 6 views
1

ArcGISを使用して、ShapefileFeatureTableを使用してマップ上にいくつかのシェイプファイルを描画しようとしています。しかし、形状ファイルをロードしようとすると、File not found例外が発生します。
これは私が使用しているコードです:AndroidでArcGISでShapefileFeatureTableを使用しているときにファイルが見つかりません

ShapefileFeatureTable shapefileFeatureTable; 
try { 
    shapefileFeatureTable = new ShapefileFeatureTable(Environment.getExternalStorageDirectory().getAbsolutePath() + "/shape.shp"); 
} catch (Exception e) { 
    e.printStackTrace(); 
    Toast.makeText(this, "loading shape failed", Toast.LENGTH_SHORT).show(); 
    return; 
} 

ここでキャッチは形状ファイルが実際にSDカード上に存在するということです。私は、コードをデバッグし、例外をスローして、この部分に到達した:

static Geodatabase a(String var0) throws FileNotFoundException { 
    File var1 = new File(var0); 
    if(!var1.exists()) { 
     throw new FileNotFoundException(var1 + " does not exist."); 
    } else { 
     return new Geodatabase(nativeOpenShapefile(var0)); // this is where it happens 
    } 
} 

ネイティブnativeOpenShapefileは、Javaの部分は完全にそれを見ながらファイルを見ることができないようです。

D/dalvikvm:スタックトレースを確認ロードしようとしたが、LIB /data/data/com.hmomeni.arcgis/lib/libruntimecore_java.so 0x4163daf0 D/dalvikvm:libに共有が追加されまし /データ/データ/ com.hmomeni.arcgis/lib/libruntimecore_java.so 0x4163daf0 W/System.err:java.lang.RuntimeException:図形ファイルが見つかりません: /storage/sdcard0/shape.shp W/System.err: com.esri .core.geodatabase.Geodatabase.nativeOpenShapefile(ネイティブ メソッド)W/System.err: com.esri.core.geodatabase.Geodatabase.a(SourceFile:126)W/System.err: at com.esri。 c ore.geodatabase.ShapefileFeatureTable(SOURCEFILE:79)。 W/System.errの: com.hmomeni.arcgis.MainActivity.initView(MainActivity.java:32) W/System.errので: com.hmomeni.arcgisで.MainActivity.onCreate(MainActivity.java:21) W/System.errの: android.app.Activity.performCreateで(Activity.java:5031)W/System.errの:
でandroid.app.Instrumentation。 callActivityOnCreate(Instrumentation.java:1082) W/System.errの: android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038) W/System.errので: android.app.ActivityThread.handleLaunchActivity(ActivityThreadました。 java:2099) android.app.ActivityThread.access $ 600で(ActivityThread.java:134) W/System.errの:W/System.errの android.app.ActivityThread $ H.handleMessageで(ActivityThread.java:1207) W/System.err: android.os.Handler.dispatchMessage(Handler.java:99)W/System.err:
at android.os.Looper.loop(Looper.java:137)W/System.err : android.app.ActivityThread.main(ActivityThread.java:4797) W/System.err:java.lang.reflect.Method.invokeNative(ネイティブ メソッド)W/System.err: でjava.lang .reflect.Method.invoke(Method.java:511)W/System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:776) W/System.errの: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:543) W/System.errので:dalvik.system.NativeStart.mainで(ネイティブメソッド)

何が問題なのでしょうか?

答えて

0

問題は、.shpファイルに付属のすべての必要なファイルが含まれていないことが判明しました。この目的には、.shx,.dbf,.prjなどのファイルが必要です。
これらをすべて含めて問題を修正しました。

1

AndroidManifest.xmlでは、外部ストレージの読み取りまたは書き込みの許可をリクエストしましたか?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

または

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

それらのそれぞれを試してみて、それが助けかどうかを確認します。詳細については、the ArcGIS Runtime documentationを参照して、「必要な権限と機能」を参照してください。

関連する問題