2012-04-01 2 views
0

Ich wurde festgefahren, um die Daten (enthalten einfügen SQL) in Assets-Ordner in die Datenbank. Ich hatte eine Menge Änderungen ausprobiert, aber mein comp Bericht:ANDROID -Insert Daten in die Datenbank, Bericht kann nicht gestartet werden ComponentInfo: java.lang.NullPointerException

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

Das ist mein food.txt Dateiinhalt:

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') 

Ich hatte für eine lange Zeit gekämpft worden. Ich hatte viele Seiten besucht, um darüber zu recherchieren. Kann mir jemand einen solideren Weg vorschlagen, um diesen Fehler zu beheben?

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"); 
    } 
+3

geben Sie mehr Stacktrace t o finden Sie, wo das Problem – Chet

+0

Stacktrace ist? Entschuldigung, ich verstehe nicht. –

+0

Ich meine Ihre so genannte "comp-Bericht", der ist "Kann nicht starten ..". Bitte schreiben Sie die restlichen Zeilen, damit es sinnvoll ist, zu verfolgen, wo das Problem liegt !! – Chet

Antwort

0

Ich glaube, Sie auf dem falschen Schwanz :) suchen

Unable Aktivität ComponentInfo

so schlage ich das Problem in dieser Tätigkeit sein könnte onCreate()

starten

--- sorry kann ich Ihren Beitrag nicht kommentieren:/

+0

ya .. ich denke auch so ... aber kann anscheinend keinen Hinweis finden, es zu lösen ... –

Verwandte Themen