AW: adb permission denied
Vielleicht solltest du etwas mehr Infos geben ;)
Woher kommt die DB?
Wird sie intern abgefüllt, ist es eine Datei die du in den assets mitlieferst, lädst du sie aus dem Internet...?
Welche Fehlermeldung kommt? Bitte LogCat mit Code-Ausschnitt posten.
AW: adb permission denied
Sorry... Ich dachte das Problem liegt an den Berechtigungen vom Handy und nicht am Code(Im Emulator läuft es ohne Probleme), deshalb die spärlichen Infos.
Die DB wird im assets mitgeliefert.
logcat:
03-21 16:42:16.533: ERROR/Database(268): sqlite3_open_v2("/data/data/<package>/databases/MYDB", &handle, 1, NULL) failed
Das passiert wenn ich prüfen will ob die DB bereits existiert:
private boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
Log.i(DEBUG_TAG, "checkdatabase1");
}catch(SQLiteException e){
...etc
wie gesagt, über die shell mit dem adb.exe sehe ich den folder '/data/data/<package> wenn ich ls /data/data/* eingebe. in den Folder selber, wo die Datenbank sein sollte komme ich aber nicht, da ich immer 'permission denied' erhalte.
ich vermute a), dass der Fehler passiert weil ich nicht die richtigen Berechtigungen habe oder b) die DB nicht da ist wo sie sein sollte, oder c) die DB ist da, hat aber keine Tabellen oder sowas in der Richtung.
AW: adb permission denied
Hast du auch noch die Exception? Es muss ja ne bestimmte Exception geben und mit der ist es einiges einfacher herauszufinden was schief läuft.
Andere Frage: kommt es überhaupt bis zum Log-Eintrag? Ich nehme an das "checkdatabase1" wird nicht mehr ausgegeben oder?
AW: adb permission denied
Nein, 'checkdatabase1' kommt nicht. Leider ist es wieder mal soweit, bekomme keine Log und Console Einträge mehr wenn ich das Programm über das HTC laufen lasse.... (hatte ich schon mal, nach etwa 2 Tagen hats dann wieder funktioniert... keine Ahnung was das ist). Sorry, kann dir im Moment nicht sagen wie die Exception lautet. (hatte sie vorher auch nicht ausprogrammiert :/ )
...weisst du oder jemand sonst hier evtl. wie ich die richtigen permissions einstellen kann, damit ich über die adb shell wenigstens mal gucken kann ob die DB überhaupt geladen wurde? Ich vermute das Problem liegt irgendwo da begraben.
AW: adb permission denied
Sorry, hat ein Weilchen gedauert.
Mein Debugger funktioniert in der Zwischenzeit und auch das LogCat ist wieder aufgetaucht (sehr merkwürdig).
Also. Ich prüfe ob meine DB bereits besteht und falls nicht wird sie kopiert (aus asset SQLite DB)
public void createDataBase() throws IOException {
boolean dbExist = checkDataBase();
if (dbExist) {
Log.i(DEBUG_TAG, "createDataBase -> Datenbank existiert");
} else {
this.getReadableDatabase();
Log.i(DEBUG_TAG, "else, db existiert nicht 1");
try {
copyDataBase();
Log.i(DEBUG_TAG, "nach copydatabase");
} catch (IOException e) {
throw new Error("Error copying database");
}
}
}
private boolean checkDataBase() throws SQLiteException {
SQLiteDatabase checkDB = null;
Boolean checkTable = false;
try {
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null,
SQLiteDatabase.OPEN_READWRITE);
Log.i(DEBUG_TAG, "checkdatabase1");
} catch (SQLiteException e) {
Log.e(DEBUG_TAG, "Fehler checkDataBase: ", e);
}
if (checkDB != null) {
checkDB.close();
}
return checkDB != null ? true : false;
}
private void copyDataBase() throws IOException {
InputStream myInput = dbContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
Log.i(DEBUG_TAG, "copydatabase");
}
Im LogCat erhalte ich dann folgende Meldungen:
03-26 17:02:05.053: INFO/Database(24458): sqlite returned: error code = 14, msg = cannot open file at line 27206 of [42537b6056]
03-26 17:02:05.053: ERROR/Database(24458): sqlite3_open_v2("/data/data/ch.test.gui/databases/PSRDB1", &handle, 2, NULL) failed
03-26 17:04:17.683: INFO/Database(24458): sqlite returned: error code = 1, msg = no such table: tbl_test
Die 2te Meldung erhalte ich auch, wenn ich das Programm im Emulator laufen lasse. Weil die DB gibts ja noch nicht. Aber die Meldung 'cannot open file....' gefällt mir nicht so.
Beim 2ten Durchlauf bekomme ich dann nur noch die 3te Meldung.
Wie gesagt, im Emulator läuft das Ganze perfekt.
Muss man noch etwas zusätzliches beachten, wenn man Apps über USB-Debug auf dem Handy laufen lässt? Haber immer noch das Gefühl, dass es ein Berechtigungsproblem sein könnte.
Bin für jede Hilfe dankbar
Ile
PS: @FireRider hab mir deine App mal runtergeladen. Chapeau!!!
AW: adb permission denied
Habs nach stundenlangem googeln lösen können.
Falls es jemanden interessiert:
http://www.anddev.org/networking-dat...hd-t50364.html
Scheint am Handy-Typ zu liegen.