Android 使用现有数据库

Android 使用现有数据库,android,Android,你好,, 我正在为Android构建一个应用程序,它使用现有的数据库。但是,应用程序无法在我的设备上正确运行 这是我的密码: Mainactivity.java: public class MainActivity extends TabActivity { Cursor model = null; TerrainAdapter adapter = null; TextView nom = null; TextView prenom = null; Te

你好,, 我正在为Android构建一个应用程序,它使用现有的数据库。但是,应用程序无法在我的设备上正确运行

这是我的密码:

Mainactivity.java:

public class MainActivity extends TabActivity {

    Cursor model = null;
    TerrainAdapter adapter = null;
    TextView nom = null;
    TextView prenom = null;
    TextView fonction = null;
    terrainHelper helper = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    helper = new terrainHelper(this);
    nom = (TextView) findViewById(R.id.nom);
    prenom = (TextView) findViewById(R.id.prenom);
    fonction = (TextView) findViewById(R.id.fonction);


    ListView list = (ListView) findViewById(R.id.terrains);

    model = helper.getAll();
    startManagingCursor(model);
    adapter = new TerrainAdapter(model);
    list.setAdapter(adapter);

    TabHost.TabSpec spec = getTabHost().newTabSpec("tag1");

    spec.setContent(R.id.terrains);
    spec.setIndicator("List", getResources().getDrawable(R.drawable.list));
    getTabHost().addTab(spec);

    spec = getTabHost().newTabSpec("tag2");

    spec.setContent(R.id.details);
    spec.setIndicator("Details", getResources().getDrawable(R.drawable.terrain));
    getTabHost().addTab(spec);

    getTabHost().setCurrentTab(0);

    list.setOnItemClickListener(onListClick);
}

@Override
public void onDestroy() {
    super.onDestroy();

    helper.close();
}
private AdapterView.OnItemClickListener onListClick = new AdapterView.OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        model.moveToPosition(position);

        nom.setText(helper.getNom(model));
        prenom.setText(helper.getPrenom(model));
        fonction.setText(helper.getFonction(model));

        getTabHost().setCurrentTab(1);
    }
};

class TerrainAdapter extends CursorAdapter {

    TerrainAdapter(Cursor c) {
        super(MainActivity.this, c);
    }

    @Override
    public void bindView(View row, Context ctxt, Cursor c) {
        TerrainHolder holder = (TerrainHolder) row.getTag();
        holder.populateFrom(c, helper);
    }

    @Override
    public View newView(Context ctxt, Cursor c, ViewGroup parent) {
        LayoutInflater inflater = getLayoutInflater();
        View row = inflater.inflate(R.layout.row, parent, false);
        TerrainHolder holder = new TerrainHolder(row);

        row.setTag(holder);

        return (row);
    }
}

static class TerrainHolder {

    private TextView ville = null;
    private TextView tache = null;

    TerrainHolder(View row) {
        ville = (TextView) row.findViewById(R.id.ville);
        tache = (TextView) row.findViewById(R.id.tache);

    }

    void populateFrom(Cursor c, terrainHelper helper) {
        ville.setText(helper.getNom(c));
        tache.setText(helper.getFonction(c));


    }
}
}

这是我的日志:

    ERROR    AndroidRuntime    FATAL EXCEPTION: main
ERROR    AndroidRuntime    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.abouchan.docs/com.abouchan.docs.MainActivity}: java.lang.NullPointerException
ERROR    AndroidRuntime        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
ERROR    AndroidRuntime        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
ERROR    AndroidRuntime        at android.app.ActivityThread.access$1500(ActivityThread.java:117)
ERROR    AndroidRuntime        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
ERROR    AndroidRuntime        at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR    AndroidRuntime        at android.os.Looper.loop(Looper.java:130)
ERROR    AndroidRuntime        at android.app.ActivityThread.main(ActivityThread.java:3703)
ERROR    AndroidRuntime        at java.lang.reflect.Method.invokeNative(Native Method)
ERROR    AndroidRuntime        at java.lang.reflect.Method.invoke(Method.java:507)
ERROR    AndroidRuntime        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
ERROR    AndroidRuntime        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
ERROR    AndroidRuntime        at dalvik.system.NativeStart.main(Native Method)
ERROR    AndroidRuntime    Caused by: java.lang.NullPointerException
ERROR    AndroidRuntime        at com.abouchan.docs.terrainHelper.getAll(terrainHelper.java:166)
ERROR    AndroidRuntime        at com.abouchan.docs.MainActivity.onCreate(MainActivity.java:54)
ERROR    AndroidRuntime        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
ERROR    AndroidRuntime        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
ERROR    AndroidRuntime        ... 11 more

这是你第一次运行它吗

您的活动可能没有在Manifest.xml中声明,这似乎是一个简单的事实

<activity android:name=".MainActivity"></activity>

<activity android:name=".TabActivity"></activity>

至少你需要包括这样的东西

希望有帮助

<activity android:name=".MainActivity"></activity>

<activity android:name=".TabActivity"></activity>