我在将数据库文件从 /assets 复制到文件资源管理器中的 /data/data 文件夹时遇到问题。我搜索了这个网站,找到了很多答案,但找不到适合我上下文的合适答案。我已经使用 SQLite Manager 在外部创建了数据库并将其导入到 assets 文件夹中。现在,当我运行我的应用程序时,我在模拟器中得到了 NullPointerException。我发现包根本没有在 /data/data 文件夹中创建。但是该应用程序正在模拟器中启动。调试器也没有显示任何错误。
我尝试了以下解决方案 -
重新启动eclipse和模拟器,删除并重新创建现有模拟器,最后重新启动笔记本电脑
没有一个解决方案解决了我的问题。谁能告诉我,我的错误是什么?
这是我的 MainActivity.java :-
public class MainActivity extends Activity implements OnClickListener
{
Dialog d;
private photoDbAdapters mDbAdapter;
public int currentimageindex=0;
String[] sp;
int p=1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
images();
}
public void images()
{
try{
String rt=mDbAdapter.fetchsingles(); //the application
is getting crashed in this part
int id = getResources().getIdentifier(rt, null, null);
ImageView iv = (ImageView) findViewById(R.id.ImageView3_Left);
iv.setImageResource(id);
}catch(NullPointerException er)
{
String ht=er.toString();
Toast.makeText(getApplicationContext(), ht, Toast.LENGTH_LONG).show ();
}}
@Override
public void onClick(View v)
{
finish();
android.os.Process.killProcess(android.os.Process.myPid());
// TODO Auto-generated method stub
}
fetchsingles 方法:-(此方法将从数据库中检索图像文件名)
public String fetchsingles()
{
try{
img = mDbHelper.getData();
}catch(Exception e)
{
String error= e.toString();
Dialog d = new Dialog(null);
d.setTitle("image cannot be fetched");
int err=Integer.parseInt(error);
d.setContentView(err);
d.show();
}
return img;
}
获取数据方法:-
public String getData()
{
// TODO Auto-generated method stub
String dry="SELECT "+COL_DATA+" FROM Photos WHERE "+COL_ID+"=2;";
Cursor c = myDataBase.rawQuery(dry,null);
String result = "";
int img = c.getColumnIndex(COL_DATA);
result = c.getString(img);
return dry;
代码可能看起来很长,不要介意任何事情,请帮助我解决这个问题。
提前致谢。