2016-09-25 9 views
1

こんにちは私は、Androidでデバッグする際に、Azureモバイルサービスのオフラインストアを使用するときにこの例外を取得しています。しかし、ウィンドウを使用してもうまく動作します。XamrinはSystem.TypeInitializationExceptionを形成します

System.TypeInitializationException: 'OrchardApp.StaffManager' は例外をスローするためのタイプ初期化子ここ

はちょうどこれは例外である

static StaffManager defaultInstance = new StaffManager(); 
    MobileServiceClient client; 

    IMobileServiceSyncTable<Staff> staffTable; 

    private StaffManager() 
    { 
     client = new MobileServiceClient(Constants.ApplicationURL); 

      var store = new MobileServiceSQLiteStore("localstore1.db"); 
      store.DefineTable<Staff>(); 

      this.client.SyncContext.InitializeAsync(store); 

      this.staffTable = client.GetSyncTable<Staff>(); 

    } 

tod0list例に基づいて、コードです。

09-26 11:05:48.991 D/Mono(1684):DllImportがロードしようとしました: '/system/lib/liblog.so'。 09-26 11:05:48.991 D/Mono(1684):DllImport読み込みライブラリ '/system/lib/liblog.so'。 09-26 11:05:48.991 D/Mono(1684): '/system/lib/liblog.so'で検索するDllImport( '/system/lib/liblog.so')。 09-26 11:05:48.991 D/Mono(1684): '__android_log_print'を検索しています。 09-26 11:05:48.991 D/Mono(1684):プロービング '__android_log_print' 09-26 11:05:48.991 D/Mono(1684): '__android_log_print'として見つかりました。 09-26 11:05:48.991 I/MonoDroid(1684):UNHANDLED例外: 09-26 11:05:48.991 I/MonoDroid(1684):System.TypeInitializationException: 'OrchardApp.StaffManager'の型初期化プログラムによって、例外。 ---> Microsoft.WindowsAzure.MobileServices.SQLiteStore.SQLiteException:SQLiteコマンドの実行中にエラーが発生しました: 'データベースファイルを開けません'。 09-26 11:05:48.991 I/MonoDroid(1684):Microsoft.WindowsAzure.MobileServices.SQLiteStore.SQLitePCLRhHelpers.VerifySQLiteResponse(Int32 result、Int32 expectedResult、SQLitePCL.sqlite3 db)[0x00024] in:0 09-26 11:05:48.991 I/MonoDroid(1684):Microsoft.WindowsAzure.MobileServices.SQLiteStore.SQLitePCLRawHelpers.GetSqliteConnection(System.Stringファイル名)[0x0000d] in:0 09-26 11:05:48.991 I/MonoDroid(1684 ):Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore..ctor(System.String fileName)[0x00039] in:0 09-26 11:05:48.991 I/MonoDroid(1684):OrchardApp.StaffManager..ctorでOrchardApp.StaffManager..cctor()[I/MonoDroid(1684)]:C:\ OPAC \ OrchardApp \ OrchardApp \ OrchardApp \ Services \ StaffManager.csの[0x0001e] 0x00000] C:\ OPAC \ OrchardApp \ OrchardApp \ OrchardApp \ Services \ StaffManager.cs:16 09-26 11:05:48.991 I/MonoDroid(1684):---内部例外スタックトレースの終了--- 09-26 11:05:48.991 I/MonoDroid(1684): OrchardApp.TodoList..ctor()[0x0000f] C:\ OPAC \ OrchardApp \ OrchardApp \ OrchardApp \ Views \ TodoList.xaml.cs:18 09-26 11:05:48.991 I/MonoDroid(1684):at OrchardApp \ OrchardApp \ OrchardApp \ OrgardApp \ Views \ HomePage.xaml.cs:26 09-26 11:05:48.991 I/Oの場合は、OrchardApp.HomePage + < < -ctor> b__0_1> d.MoveNext()[0x0000f] MonoDroid(1684):---例外がスローされた前の場所からのスタックトレースの終了--- 09-26 11:05:48.991 I/MonoDroid(1684):System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()/Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionseの[0x0000c]/Users/builder/data/lanes /内のSystem.Runtime.CompilerServices.AsyncMethodBuilderCore.m__0(System.Objectの状態)[0x00000]で、I/MonoDroid(1684):rvicescommon.cs:143 09-26 11: 3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1018 09-26 11:05:48.995 I/MonoDroid(1684):Android.App.SyncContext + c__AnonStorey0です。 <> m__0()[0x00000] /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/src/Android.App/SyncContext.cs:18 09-26 11:05 :48.995 I/MonoDroid(1684):Java.Lang.Thread + RunnableImplementor.Run()/Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/src/の[0x0000b] Java.Lang/Thread.cs:36 09-26 11:05:48。995 I/MonoDroid(1684):Java.Lang.IRunnableInvoker.n_Run(IntPtr jnienv、IntPtr native__)[/ /ユーザー/ビルダー/データ/レーン/3415/7db2aac3/source/monodroid/src/Mono.Android/の[0x00009] I/MonoDroid(1684):at(ラッパー動的メソッド)System.Object:578fa2b5-486e-11/05:48.995プラットフォーム:/roid/23/src/generated/Java.Lang.IRunnable.cs:81 09-26 11:05: 424f-9b2b-bb0dcaf1a772(intptr、intptr) 09-26 11:05:49.003 D/Mono(1684): '__Internal'( '(null)'で検索するDllImport。 09-26 11:05:49.003 D/Mono(1684): 'java_interop_jnienv_throw'を検索しています。 09-26 11:05:49.003 D/Mono(1684):Probing 'java_interop_jnienv_throw'です。 09-26 11:05:49.003 D/Mono(1684): 'java_interop_jnienv_throw'として見つかりました。 未処理の例外が発生しました。

+0

回答を得るには、例外(メッセージとその発生場所)を指定する必要があります。 Xamarinのデバッグに関するヒントをいくつか紹介します: http://xamariniac.hlinteractive.se/index.php/2016/09/22/debugging-xamarin-and-cross-platform-exceptions/ –

+0

こんにちは私は例外の詳細を追加しました –

+1

Azure Mobile Servicesをダウングレードすることを提案します(2.1.1)。 https://forums.xamarin.com/discussion/78936/microsoft-azure-mobile-client-sqlitestore-upgraded-to-3-0-get-error-unable-to-open-database-file –

答えて

0

同様の問題は、私はthis回避策

PCLプロジェクトApp.cs

 public static string Path = "MyLocalStore.db"; 

のAndroidプロジェクトMainActivity.cs NEL metodo OnCreateの

 //Call this in each platform before intializing your Mobile Client 
     SQLitePCL.Batteries.Init(); 

     App.Path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), App.Path); 

     if (!File.Exists(App.Path)) 
     { 
      File.Create(App.Path).Dispose(); 
     } 
で解決しています

最後に

 var store = new MobileServiceSQLiteStore(App.Path); 
関連する問題