2017-03-13 15 views
0

Entity Frameworkコアを使用するアンドロイド用のxamarinで書かれたアプリがあります。 Wiko(Android 6.0)、HTC(Android 7.1)、Sony(6.0)のテストデバイスで動作します。しかし、サムスンのデバイス(6.0)上で、私たちは、起動時に次の例外を取得:Entity Framework CoreはアンドロイドのSamsungデバイスでデータベースファイルを作成できません

Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1294: 'unable to open database file'. 

完全な例外:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    ... 1 more 
Caused by: android.runtime.JavaProxyThrowable: Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1294: 'unable to open database file'. 
    at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() [0x00000] in <f97b8874924247a39fca91e98b024cf6>:0 
    at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (System.String targetMigration) [0x00030] in <f97b8874924247a39fca91e98b024cf6>:0 
    at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate (Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade) [0x00010] in <f97b8874924247a39fca91e98b024cf6>:0 
    at FriendsAppDate.Business.AppStart.Start (System.Object hint) [0x0001b] in <c1a86397b9cc451297593cc8cc1289f7>:0 
    at MvvmCross.Droid.Views.MvxSplashScreenActivity.TriggerFirstNavigate() [0x00005] in <f6aebf863dc84be7b380cfec8d459508>:0 
    at MvvmCross.Droid.Views.MvxSplashScreenActivity.InitializationComplete() [0x00009] in <f6aebf863dc84be7b380cfec8d459508>:0 
    at MvvmCross.Droid.Platform.MvxAndroidSetupSingleton.InitializeFromSplashScreen (MvvmCross.Droid.Views.IMvxAndroidSplashScreenActivity splashScreen) [0x00029] in <f6aebf863dc84be7b380cfec8d459508>:0 
    at MvvmCross.Droid.Views.MvxSplashScreenActivity.OnResume() [0x00018] in <f6aebf863dc84be7b380cfec8d459508>:0 
    at Android.App.Activity.n_OnResume (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in <fca2c02347db4086aed81b5475a315fd>:0 
    at (wrapper dynamic-method) System.Object:b336e942-d75d-4699-a108-3115233929aa (intptr,intptr) 
    at mvvmcross.droid.views.MvxSplashScreenActivity.n_onResume(Native Method) 
    at mvvmcross.droid.views.MvxSplashScreenActivity.onResume(MvxSplashScreenActivity.java:39) 
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1286) 
    at android.app.Activity.performResume(Activity.java:6987) 
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4144) 
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4245) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1838) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:158) 
    at android.app.ActivityThread.main(ActivityThread.java:7224) 
    ... 3 more 

を私は経由databseパスを取得:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), Constants.DB_NAME); 

と、これはありますすべてのデバイスで同じです。

/data/user/0/[AppID]/files/[DbName] 

我々はここで間違っている可能性が何Entity Frameworkのコア1.1.1 の現在のバージョンを使用できますか?

答えて

0

これはSamsungデバイスでSQLiteを実装する際の問題で、2.0で修正する必要があります。 EFチームには問題がありました。ここをクリックしてください:https://github.com/aspnet/EntityFramework/issues/7870

また、私たちのために働いていたのは、生のSQL文を使ってdbを作成することでした。 SQlite DB Browserはそれらを生成するので、コピーして貼り付けることができます。

関連する問題