Java 当I';时,致命异常显示错误无法启动活动组件;我正在运行这个应用程序

Java 当I';时,致命异常显示错误无法启动活动组件;我正在运行这个应用程序,java,android,sqlite,Java,Android,Sqlite,我试图在列表视图应用程序中简单地显示SQLite数据库中的所有记录。编译器没有检测到任何错误,但当我运行应用程序时,它会收到一个运行时错误 main_Activity.java package com.example.login_userauthentication; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; im

我试图在列表视图应用程序中简单地显示SQLite数据库中的所有记录。编译器没有检测到任何错误,但当我运行应用程序时,它会收到一个运行时错误

main_Activity.java

package com.example.login_userauthentication;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void Register(View v)
    {
        startActivity(new Intent(getApplicationContext(),Reg.class));
    }
    public void Login(View v)
    {
        startActivity(new Intent(getApplicationContext(),Login.class));
    }

    public void Show_allrecord(View v)
    {
        startActivity(new Intent(getApplicationContext(),Show_record.class));
    }
    public void update_record(View v)
    {
        startActivity(new Intent(getApplicationContext(),Update.class));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
Show_Record.java(这是在listview中显示所有用户详细信息的主类)

这是logcat

12-24 05:15:26.447: I/Choreographer(1009): Skipped 64 frames!  The application may be doing too much work on its main thread.
12-24 05:15:27.797: I/Choreographer(1009): Skipped 48 frames!  The application may be doing too much work on its main thread.
12-24 05:15:43.807: I/System.out(1009): show sumit
12-24 05:15:44.547: D/dalvikvm(1009): GC_FOR_ALLOC freed 88K, 9% free 2642K/2876K, paused 245ms, total 305ms
12-24 05:15:44.818: I/System.out(1009): show_record activity
12-24 05:15:44.837: I/System.out(1009): show sumit
12-24 05:15:44.857: I/jobplacement(1009): DBHelper class constructer called
12-24 05:15:44.857: I/jobplacement(1009): Database Created Successfully
12-24 05:15:44.887: D/AndroidRuntime(1009): Shutting down VM
12-24 05:15:44.887: W/dalvikvm(1009): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
12-24 05:15:45.017: E/AndroidRuntime(1009): FATAL EXCEPTION: main
12-24 05:15:45.017: E/AndroidRuntime(1009): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login_userauthentication/com.example.login_userauthentication.Show_record}: java.lang.NullPointerException
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.os.Looper.loop(Looper.java:137)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.main(ActivityThread.java:5041)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at java.lang.reflect.Method.invokeNative(Native Method)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at java.lang.reflect.Method.invoke(Method.java:511)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at dalvik.system.NativeStart.main(Native Method)
12-24 05:15:45.017: E/AndroidRuntime(1009): Caused by: java.lang.NullPointerException
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.example.login_userauthentication.Database.getAllrecord(Database.java:144)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.example.login_userauthentication.Show_record.onCreate(Show_record.java:32)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.Activity.performCreate(Activity.java:5104)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-24 05:15:45.017: E/AndroidRuntime(1009):     ... 11 more
12-24 05:40:30.726: D/gralloc_goldfish(1215): Emulator without GPU emulation detected.
12-24 05:43:35.957: D/gralloc_goldfish(1271): Emulator without GPU emulation detected.

传递的数据库类getAllrecord()context1内部为null

 dbhelper = new Databse_helper(context1);//here context1 is null
您可以尝试在数据库类中将上下文传递到getAllrecord(context-context1) 然后我可以打电话

studentlist=helper.getAllrecord(Show_record.this)


从Show_唱片班。希望这将有助于解决您的问题。

您的
日志猫在哪里?
?我已经编辑了日志,您在通过上下文后仍然面临问题吗?请用更新的代码更新您的logcat stacktrace。先生,没有任何事情发生。我是我最好的,但什么都没有。请在您对context1进行更改后粘贴您的更新代码。
package com.example.login_userauthentication;

import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.provider.SyncStateContract.Helpers;
import android.util.Log;

public class Database
{
    public static final String TABLE_NAME = "student";
    public static final String USER_EMAILID= "emailid";
    public static final String USER_PASSWORD = "password";
    public static final String USER_NAME = "name";
    public static final String USER_CONTACT = "mobileno";
    public static final String Tag = "jobplacement";

    public static Databse_helper dbhelper = null;
    public static SQLiteDatabase db = null;
    static Context context1 = null;

    public static boolean addUser(Context context, String email, String password, String name,String mobile)
    {
        context1=context;
        try {
        dbhelper=new Databse_helper(context);
        db=dbhelper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(Database.USER_EMAILID,email);
        values.put(Database.USER_PASSWORD,password);
        values.put(Database.USER_NAME,name);
        values.put(Database.USER_CONTACT,mobile);
        long rowid = db.insert(Database.TABLE_NAME, null, values);
        Log.d("Users", "Inserted into TRANSACTIONS " + rowid);
        db.close();
        return true;
        } catch (Exception e) {
            // TODO: handle exception
        }
        return false;
    }

    public static boolean userAuthentication(Context context, String uname, String password) {

        Cursor trans = null;
        try {
            dbhelper=new Databse_helper(context);
            db = dbhelper.getWritableDatabase();
            trans = db.rawQuery("select " + USER_PASSWORD + " from " + TABLE_NAME + " where " + USER_EMAILID
                    + " = '" + uname + "'", null);
            if (trans.getCount() == 0) 
            {
                Log.d("userAuthentication", "Zero record");
            } 

            else 
            {
                while (trans.moveToNext()) 
                {
                    String pass = trans.getString(trans.getColumnIndex(USER_PASSWORD));
                    if (password.equals(pass))
                    {
                        return true;
                    } else {
                        return false;
                    }
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        return false;
    }

    public ArrayList<Student> getAllProducts() 
    {
        db = dbhelper.getWritableDatabase();
        List<Student> productList = new ArrayList<Student>();
        // Select All Query
        String selectQuery = "SELECT  * FROM " + Database.TABLE_NAME;
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Student st = new Student();
                st.setEmailid(cursor.getString(0));
                st.setPassword(cursor.getString(1));
                st.setName(cursor.getString(2));
                st.setMobileno(cursor.getString(3));
//              product.setID(Integer.parseInt(cursor.getString(0)));
//              product.setName(cursor.getString(1));
//              product.setNumber(Integer.parseInt(cursor.getString(2)));
//              product.setPieces(Integer.parseInt(cursor.getString(3)));
//              product.setPrice(Integer.parseInt(cursor.getString(4)));
//              product.setTotPrice(Integer.parseInt(cursor.getString(5)));
                // Adding contact to list
                productList.add(st);
            } while (cursor.moveToNext());
        }

        // return contact list
        return (ArrayList<Student>) productList;
    }

    public static boolean  updateEntry(Student st)
    {

        db=dbhelper.getWritableDatabase();
        // Define the updated row content.
        ContentValues updatedValues = new ContentValues();
        // Assign values for each row.
        updatedValues.put(USER_EMAILID, st.getEmailid());
        updatedValues.put(USER_NAME,st.getName());
        updatedValues.put(USER_CONTACT, st.getMobileno());

        //String where=Database.USER_EMAILID +"=+?";
       // String where="emailid +=?";
         int row_id=db.update(Database.TABLE_NAME,updatedValues, "emailid=?", new String[]{st.getEmailid()});
         Log.d("login", "updated record " +row_id);
        return true;
    }

    public ArrayList<Student> getAllrecord()
    {
        dbhelper=new Databse_helper(context1);
        db=dbhelper.getWritableDatabase();
        List<Student> emplist=new ArrayList<Student>();
        String rowquery="select * from "+TABLE_NAME;
        Cursor cursor=db.rawQuery(rowquery, null);
        if (cursor.moveToFirst()) 
        {
            do 
            {   Student st = new Student();
            st.setEmailid(cursor.getString(0));
            st.setPassword(cursor.getString(1));
            st.setName(cursor.getString(2));
            st.setMobileno(cursor.getString(3));
                // Adding Translate to list

                Student emp1=new Student();
               emplist.add(st);
            } 
            while (cursor.moveToNext());
        }

        // return Translate list
        return (ArrayList<Student>) emplist;
   }
}
package com.example.login_userauthentication;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class Databse_helper extends SQLiteOpenHelper
{
    static final int DATABASE_VERSION = 2;
    static final String DATABASE_NAME = "collage.db";
    public static final String Tag = "jobplacement";

    public Databse_helper(Context cxt) 
    {
        super(cxt, DATABASE_NAME, null, DATABASE_VERSION);
        Log.i(Tag, "DBHelper class constructer called");
        Log.i(Tag, "Database Created Successfully");
    }

    public void onCreate(SQLiteDatabase db) 
    {
        createTables(db);

    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
         db.execSQL("DROP TABLE IF EXISTS " + Database.TABLE_NAME);

        // Create tables again
        onCreate(db);
    }

    private void createTables(SQLiteDatabase database)
    {

        String users_table_sql = "create table " + Database.TABLE_NAME + " ( " + Database.USER_EMAILID
                + " TEXT," + Database.USER_PASSWORD + " TEXT," + Database.USER_NAME
                + " TEXT," + Database.USER_CONTACT + " TEXT)";
         try {
             database.execSQL(users_table_sql);
             Log.d(Tag, "table created successfully");

    //     protected static final String player = ("CREATE TABLE " + table_player
    //              + " (" + player_id + " INTEGER PRIMARY KEY AUTOINCREMENT, "
    //              + player_name + " TEXT, " + player_dob + " INTEGER," + player_gender + " TEXT);");
    //     
    //     
    //     "CREATE TABLE " + TABLE_PRODUCTS + "("
    //     + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
    //     + KEY_NO + " TEXT," + KEY_PIECES + " TEXT,"+ KEY_PRICE + " TEXT," + KEY_TOT_PRICE + " TEXT" + ")";

        } catch (Exception ex)
        {
            Log.d("Accounts", "Error in DBHelper.onCreate() : " + ex.getMessage());
        }
    }
}
12-24 05:15:26.447: I/Choreographer(1009): Skipped 64 frames!  The application may be doing too much work on its main thread.
12-24 05:15:27.797: I/Choreographer(1009): Skipped 48 frames!  The application may be doing too much work on its main thread.
12-24 05:15:43.807: I/System.out(1009): show sumit
12-24 05:15:44.547: D/dalvikvm(1009): GC_FOR_ALLOC freed 88K, 9% free 2642K/2876K, paused 245ms, total 305ms
12-24 05:15:44.818: I/System.out(1009): show_record activity
12-24 05:15:44.837: I/System.out(1009): show sumit
12-24 05:15:44.857: I/jobplacement(1009): DBHelper class constructer called
12-24 05:15:44.857: I/jobplacement(1009): Database Created Successfully
12-24 05:15:44.887: D/AndroidRuntime(1009): Shutting down VM
12-24 05:15:44.887: W/dalvikvm(1009): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
12-24 05:15:45.017: E/AndroidRuntime(1009): FATAL EXCEPTION: main
12-24 05:15:45.017: E/AndroidRuntime(1009): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login_userauthentication/com.example.login_userauthentication.Show_record}: java.lang.NullPointerException
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.os.Looper.loop(Looper.java:137)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.main(ActivityThread.java:5041)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at java.lang.reflect.Method.invokeNative(Native Method)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at java.lang.reflect.Method.invoke(Method.java:511)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at dalvik.system.NativeStart.main(Native Method)
12-24 05:15:45.017: E/AndroidRuntime(1009): Caused by: java.lang.NullPointerException
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.example.login_userauthentication.Database.getAllrecord(Database.java:144)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at com.example.login_userauthentication.Show_record.onCreate(Show_record.java:32)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.Activity.performCreate(Activity.java:5104)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-24 05:15:45.017: E/AndroidRuntime(1009):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-24 05:15:45.017: E/AndroidRuntime(1009):     ... 11 more
12-24 05:40:30.726: D/gralloc_goldfish(1215): Emulator without GPU emulation detected.
12-24 05:43:35.957: D/gralloc_goldfish(1271): Emulator without GPU emulation detected.
 dbhelper = new Databse_helper(context1);//here context1 is null