2017-12-15 8 views
3

ist die Ausnahme von ReichREALM - System.TypeInitializationException: Der Typinitialisierer für 'Realms.Realm' hat eine Ausnahme ausgelöst. Diese ---> System.DllNotFoundException

{System.TypeInitializationException: The type initializer for 'Realms.Realm' threw an exception. ---> 
System.DllNotFoundException: realm-wrappers 
    at (wrapper managed-to-native) Realms.NativeCommon:register_notify_realm_changed 
(Realms.NativeCommon/NotifyRealmCallback) 
    at Realms.Realm..cctor() [0x0004f] in <f0097c463d884e09ba2bde58b530c6d7>:0 

--- End of inner exception stack trace --- 
    at DAL.t_MobileUser..ctor() [0x0001e] in 
D:\visual studio 2015\Projects\RBankCI\DAL\t_MobileUser.cs:17 
    at BLL.BLL_MobileUser.m05_selectSpecific (System.Int32 id) [0x00013] in 
D:\visual studio 2015\Projects\RBankCI\BLL\BLL_MobileUser.cs:34 
    at RBankCI.Activity_PDRN.m7_btnSaveClick() [0x00008] in 
D:\visual studio 2015\Projects\RBankCI\RBankCI\Activities\Activity_PDRN.cs:96 } 

Wenn ich rufe Realm realm = Realm.GetInstance (config); Ich erhalte einen Fehler, der ganz oben steht. Ich habe den Bereich von Nugget Packager heruntergeladen, so dass ich nicht weiß, was es als DllNotFoundException

Ich habe versucht, diese Versionen aber das gleiche Ergebnis der Ausnahme herunterladen: 2.1.0, 0.82.1 und 0.80 (gleiche aus meiner vorherigen App, die hat keine Ausnahme)

Hier ist mein Beispielcode.

private Realm realm; 

    public void insert(object obj) 
    { 
     try 
     { 
      realm = Realm.GetInstance(DAL_DBAccessVariable.config); //Error occur here 
      ENT_MobileUser entity = (ENT_MobileUser)obj; 
      using (var transaction = realm.BeginWrite()) 
      { 
       DAL_MobileUserEntity dbTable = realm.CreateObject<DAL_MobileUserEntity>(); 
       dbTable.id = entity.id; 
       dbTable.firstName = entity.firstName; 
       dbTable.middleName = entity.middleName; 
       dbTable.lastName = entity.lastName; 
       dbTable.userID = entity.userID; 
       dbTable.userPinCode = entity.userPinCode; 
       dbTable.licenseKey = entity.licenseKey; 
       dbTable.licenseExpiry = entity.licenseExpiry; 

       transaction.Commit(); 
      } 
     } 
     catch (Exception e) 
     { throw; } 
    } 

dies ist die DAL_DBAccessVariables

using Realms; 
using System; 
using System.IO; 

namespace DAL 
{ 
    public class DAL_DBAccessVariable 
    { 
     private const string databaseName = "name.realm"; 
     public static readonly string dbPath = 
      Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), databaseName); 
     public static readonly RealmConfiguration config = new RealmConfiguration(dbPath); 
    } 
} 

Weitere Infos, wenn helfen können. Ich aktualisierte meine Xamarin auf die neueste Version, Visual Studio 2015 Professional.

+0

Scheint wie Probleme mit NuGet - versuchen Sie, Ihre bin, obj, und Pakete Ordner und dann Wiederaufbau Ihre Lösung. –

+0

Ich habe dieses Problem immer noch bei meinem neuen Projekt. Ich habe versucht, das andere Projekt zu starten, und es funktioniert. – jace

Antwort

2

Ich fand die Antwort hier - https://github.com/realm/realm-dotnet/issues/1354 lieferte den Screenshot.

enter image description here

Das eigentliche Problem ist, wenn Sie eine Business-Schicht implementieren und ein DLL-Projekt mit Ihren Datenbankverbindungen zu speichern. Wenn ja, müssen wir den Bereich nicht nur in DLL oder DAL sondern auch in unserem Hauptprojekt und es das Problem lösen 100%

Verwandte Themen