当前位置: 代码迷 >> Android >> 读取android raw文件夹中数据库文件出现空指针错误
  详细解决方案

读取android raw文件夹中数据库文件出现空指针错误

热度:107   发布时间:2016-05-01 21:54:09.0
读取android raw文件夹中数据库文件出现空指针异常
想做一个字典
按这个方法做的
http://www.cnblogs.com/nokiaguy/archive/2010/07/31/1789218.html
Java code
private SQLiteDatabase openDatabase()    {        try        {            // 获得dictionary.db文件的绝对路径            String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;            File dir = new File(DATABASE_PATH);            // 如果/sdcard/dictionary目录中存在,创建这个目录            if (!dir.exists())                dir.mkdir();            // 如果在/sdcard/dictionary目录中不存在            // dictionary.db文件,则从res\raw目录中复制这个文件到            // SD卡的目录(/sdcard/dictionary)            if (!(new File(databaseFilename)).exists())            {                // 获得封装dictionary.db文件的InputStream对象                InputStream is = getResources().openRawResource(R.raw.dictionary);                FileOutputStream fos = new FileOutputStream(databaseFilename);                byte[] buffer = new byte[8192];                int count = 0;                // 开始复制dictionary.db文件                while ((count = is.read(buffer)) > 0)                {                    fos.write(buffer, 0, count);                }                fos.close();                is.close();            }            // 打开/sdcard/dictionary目录中的dictionary.db文件            SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(                    databaseFilename, null);            return database;        }        catch (Exception e)        {        }        return null;    }

但执行到InputStream is = getResources().openRawResource(R.raw.dictionary);就会直接跳到异常处理
异常为空指针异常
已添加
XML code
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >    </uses-permission>    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >    </uses-permission>
权限

------解决方案--------------------
是getResources()为空,也就是context为空,是context的问题,你要看看你代码的上下文。
  相关解决方案