ANDROID - вставить данные в базу данных, отчет Невозможно запустить действие ComponentInfo: java.lang.NullPointerException - PullRequest
0 голосов
/ 01 апреля 2012

Я застрял, чтобы получить данные (содержат вставку SQL) из папки активов в базу данных. Я перепробовал много изменений, но мой комп отчет:

"Unable to start activity ComponentInfo{com.restaurant.sesame/com.restaurant.sesame.Food}:   java.lang.NullPointerException"

Это мой файл food.txt:

 INSERT INTO Food (name,detail,price)VALUES ('Cow Rib Steak', '1h 37m Shipping: $11.00', '11.00')
 INSERT INTO Food (name,detail,price)VALUES ('Cow Rib Steak', '1h 37m Shipping: $11.00', '11.00')
 INSERT INTO Food (name,detail,price)VALUES ('Cow Rib Steak', '1h 37m Shipping: $11.00', '11.00')
 INSERT INTO Food (name,detail,price)VALUES ('Cow Rib Steak', '1h 37m Shipping: $11.00', '11.00')

Я долго боролся. Я посетил много сайтов, чтобы исследовать это. Может кто-нибудь предложить более надежный способ помочь мне решить эту ошибку?

  public class Restaurant extends Activity {
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_DETAIL = "detail";
public static final String KEY_PRICE = "price";


private static final String DATABASE_NAME ="Restaurantdb";
private static final String DATABASE_TABLE ="Food";
private static final int DATABASE_VERSION = 1;


private SQLiteDatabase ourDatabase;
private final Context ourContext;
private DBHelper ourHelper;

InputStream input;
AssetManager assetManager = getAssets();
static String value;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    try {
           input = assetManager.open("food.txt");

                  int size = input.available();
                  byte[] buffer = new byte[size];
                  input.read(buffer);
                  input.close();

                  // byte buffer into a string
                   value = new String(buffer);


      } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
          }
}

private static class DBHelper extends SQLiteOpenHelper{

    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL("CREATE TABLE Food (" + KEY_ROWID +" INTEGER PRIMARY KEY AUTOINCREMENT, "
                    +KEY_NAME+" TEXT NOT NULL, "+KEY_DETAIL+ " TEXT NOT NULL, " + KEY_PRICE+ " DECIMAL (18,2) NOT NULL );"
                );
        db.execSQL("CREATE TABLE Bill ( _id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL,"+
                " price  DECIMAL (18,2) NOT NULL, quantity INTEGER NOT NULL, total DECIMAL (18,2) NOT NULL );"
            );



        db.rawQuery(value, null);

        Log.w("my app", "insert data into NEW DB");
    }

1 Ответ

0 голосов
/ 13 апреля 2012

Я думаю, что вы ищете не тот хвост:)

Невозможно запустить действие ComponentInfo

, поэтому я предполагаю, что проблема может быть в этом действии onCreate ()

--- извините, я не могу прокомментировать ваше сообщение: /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...