مشکل با برنامه Database
سلام دوستان ، در برنامه ی Database ( اولاش ) من طبق دستورات پیش میرم ( در اندروید استودیو ) ولی با خطای زیر مواجه میشم : Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
کسی ایده ای داره ؟ و البته در AndroidManifest.xml هم این دو مورد رو اضافه کردم : =>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-sdk android:minSdkVersion="8"/>
// Codes of G class :
package com.example.n5110.database;
import android.app.Application;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import java.io.File;
public class G extends Application {
public static Context context;
public static SQLiteDatabase database;
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test/";
@Override
public void onCreate() {
super.onCreate();
context = this.getApplicationContext();
new File(DIR_DATABASE).mkdirs();
database.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null);
}
}
سلام
فک کنم مشکل از / باشه
به جای این
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test/";
از این استفاده کن
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test";
سلام
dataBase شما مقدار نداره ، باید dataBase رو به این صورت مقدار دهی کنید :
به جای این خط :
database.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null);
بنویسید :
database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null);
این مربوط به logcat هست :
01-03 20:25:17.491 10122-10122/com.example.n5110.database D/AndroidRuntime: Shutting down VM
01-03 20:25:17.491 10122-10122/com.example.n5110.database E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.n5110.database, PID: 10122
java.lang.RuntimeException: Unable to create application com.android.tools.fd.runtime.BootstrapApplication: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5364)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:711)
at com.example.n5110.database.G.onCreate(G.java:21)
at com.android.tools.fd.runtime.BootstrapApplication.onCreate(BootstrapApplication.java:369)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5361)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
علاوه بر اینکه باید تغییری که Reza@ گفتن مشکل اصلی ارور از این جا بود که من روی امولیتوری که ورژنش 6 به بالا بود داشتم اجرا می کردم و به خاطر مبحث runTimePermision ها که از اندروید 6 به بالا اضافه شده و من اطلاعی ازش نداشتم برنامه Crash می کرد و وقتی که روی ورژن 5.1 امتحان کردم به درستی ران شد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .