首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问Android资产(没有文章或教程为我工作),请帮助!

无法访问Android资产(没有文章或教程为我工作),请帮助!
EN

Stack Overflow用户
提问于 2011-01-19 11:56:47
回答 2查看 7.1K关注 0票数 3

在使用Android的资产访问方面,我面临着一种诅咒。我正在使用NetBeans 6.9.1,并在2.3Android虚拟设备上进行测试。我正在尝试访问存储在assets文件夹中的数据库文件("database.db") (尽管我不得不自己创建目录,因为它甚至不存在于我的项目文件夹中),而且在失去寻找解决方案的3天多之后,我根本无法这样做。这里总结一下我的悲剧性过程:

  • 在我的NetBeans项目目录中创建了一个名为“资产”的目录( "res“或"src”文件夹所在的位置)。
  • ,我在里面复制了"database.db“文件,甚至复制了一个"sample.txt",在对所有可能的东西进行测试时,我还将该文件存储在" assets /sub”子目录中。
  • 有一个继承自"SQLiteOpenHelper“的类,在那里我只是试图访问我的数据库文件,在看到这几乎是不可能的之后,我只想看看我的资产文件夹包含了什么:

公共类DataBaseHelper扩展了SQLiteOpenHelper{私有静态字符串DB_PATH =“/data/data/org.me.androidbt/DB_PATH/”;私有静态字符串DB_NAME = "database.db";私有SQLiteDatabase myDataBase;私有最终上下文myContext;公共DataBaseHelper(上下文){超级(上下文,DB_NAME,null,1);this.myContext = context;} private ()抛出IOException{ // first,在第一行InputStream is =myContext.getAssets(“sub/sample.txt”)中爆炸。BufferedReader br =新BufferedReader(新InputStreamReader(is));字符串行=空;int数= 0;而((line =br.readLine() != null) { //仅用于调试number++时检查" line“值;} br.close();//第二次尝试,没有爆炸AssetManager mngr = myContext.getResources().getAssets();String[] str = mngr.list("");// String只包含三个元素:“图像”、“声音”和"webkit“// (在”我的资产“文件夹中没有这样的东西) // Real试图打开DB,死得可怕,吹起我的PC InputStream myInput =InputStream

我还尝试从MainActivity本身访问它:

代码语言:javascript
复制
try{
        AssetManager mng = this.getAssets();
        String[] str = mng.list("");
        // The same three elements...

        // And this explodes in a nuclear toxic cloud that kills a thousand birds
        InputStream is = this.getAssets().open("sub/sample.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line = null;
        int number = 0;
        while ((line = br.readLine()) != null) {
            number++;
        }
        br.close();
    }catch(Exception e){
        // Life is sad...
    }

现在,一些问题:我做错了什么?我的资产文件夹是否正确放置?我的文件被复制了吗?我的代码正确放置了吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-07 11:33:59

修复:

在项目根目录下创建一个名为“资产”的目录(与AndroidManifest.xml所在的目录相同)

In /nbproject/project.properties,更改

* exist)*添加了这两行(它不会使用)

assets.dir=assets assets.available=true

在/nbproject/built-in.xml中,

“if=assets.available”目标中有一行读取

这需要改变为

就是这样-您应该全部设置,“file:///android_asset/”应该可以访问您的应用程序,并包含您的项目的资产目录的内容。

找到这个链接了它对我有效!

http://blog.yetisoftware.com/2009/04/02/android-netbeans-and-the-assets-directory/

票数 2
EN

Stack Overflow用户

发布于 2014-09-10 08:54:23

我有这个问题,我建议你检查几件事:

  1. 如果目录名是用英文写的.
  2. ,您的资产根目录中只有一个目录(在这个目录中,您可以插入几个

)。

例如:assets -> app -> imageassets -> app -> another dir。在本例中,app dir是asssete根目录中的惟一dir。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4734928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档