ファイル エクスプローラーでデータベース ファイルを /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;
}
getdata メソッド:-
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;
コードは長く見えるかもしれませんが、気にしないでください。この問題を解決するのを手伝ってください。
前もって感謝します。