Невозможно прочитать файл формы в Android

Я пытаюсь использовать ShapefileFeatureTable() для чтения файла формы в Android. Независимо от того, по какому пути я указываю, в нем указано исключение "Файл не найден".

try 
{
    ShapefileFeatureTable shpFileFeatTable = new ShapefileFeatureTable("/storage/sdcard/map.shp");
} 
catch (FileNotFoundException e) 
{
    e.printStackTrace();
} 
catch(Exception e)
{
    e.printStackTrace();
}

Может кто-нибудь мне помочь?

Примечание: я работаю над эмулятором Android. Также я использую библиотеку arcGIS.

4 ответа

Решение

Оказывается, он отображал шейп-файл. Мне пришлось очистить MapView, чтобы увидеть его.

<com.esri.android.map.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</com.esri.android.map.MapView>

У меня была такая же проблема. Убедитесь, что другие файлы, связанные с map.shp, находятся рядом с ним в той же папке. Расширения других файлов, связанных с map.shp: .dbf .prj .sbn .sbx .shp.xml .shx

Посмотрите этот пример, если вам поможет

https://developers.arcgis.com/android/api-reference/reference/com/esri/core/geodatabase/ShapefileFeatureTable.html

Ваше приложение, вероятно, не запрашивает разрешение на чтение из внешнего хранилища. Вам необходимо поместить следующее в AndroidManifest.xml:

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

На данный момент ShapefileFeatureTable доступен только для чтения, но если в будущем этот класс получит возможности редактирования, и вы захотите выполнить редактирование, вашему приложению также потребуется запросить права на запись:

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

См. http://developer.android.com/guide/topics/manifest/uses-permission-element.html для получения дополнительной информации.

Также возможно (но маловероятно), что ваш путь к файлу просто неверен. Если вы запрашиваете разрешения на чтение и по-прежнему получаете FileNotFoundException, проверьте значение new File("/path/to/file.shp").exists(), Если Android не видит файл, ArcGIS также не видит файл.

Другие вопросы по тегам