Android Studios无法识别我添加的资产文件

时间:2014-12-11 23:51:15

标签: java android-studio arcgis filenotfoundexception esri

Android Studios 1.0

我在Android工作室的app / src / main / assets文件夹中添加了一个文件,但它仍然不停地抛出

unreported exception FileNotFoundException; must be caught or declared to be thrown

所以我尝试使用ERSI ArcGIS API创建一个Geodatabase类(但我相信这个问题与此无关)。我已经尝试将文件(basemap.geodatabase)放在各种不同的位置,在app文件夹中,在src,main,assets中,在很多不同的位置,但IDE不会识别它。我甚至尝试过从计算机上的C:/驱动器中引用它,但这也不会起作用。我已经读过有这个问题的不同人,但他们的解决方案对我来说并不起作用。以下是我在文件位于src / main / assets文件夹时使用的代码:

Geodatabase geodatabase = new Geodatabase("/basemap.geodatabase");

我也试过了,

Geodatabase geodatabase = new Geodatabase("{/basemap.geodatabase}");

Geodatabase geodatabase = new Geodatabase("/src/main/assets/basemap.geodatabase");

以及所有的不同变体。

根据app.iml文件,第一行应该是正确的,因为:

<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />

但它一直在抛出FileNotFound错误。 如何让IDE识别此文件以便我可以使用它?

1 个答案:

答案 0 :(得分:0)

好吧,不用担心我会回答我自己的问题,我找到了解决方案。

我还不太确定为什么Gradle没有将.geodatabase文件打包在包中,但解决方法是将文件放在PHYSICAL设备上,然后放在从那里引用它的代码中,我知道它就是这样:

    try {
        geodatabase = new Geodatabase("/sdcard/Geodatabase/basemap.geodatabase");
    } catch (FileNotFoundException e) {
        Log.e("ERROR", "File Not found");
        e.printStackTrace();
    }

所以我将文件放在平板电脑上的文件层次结构中的位置(/sdcard/Geodatabase/basemap.geodatabase"),程序在那里找到它。