0

これは、 への最初の呼び出しで発生しRealm.GetInstanceます。iOS でのみ発生しますが、Android では問題なく動作します。Realm のバージョンは 0.77.2 です。

これは MvvmCross と ReactiveUI を使用した Xamarin プロジェクトですが、ほとんどの場合、これは問題ではありません。

Realm.GetInstanceMvvmCross がブートストラップされ、少なくとも 1 つの画面が表示された後、Android と同様に少し遅れて への呼び出しが発生します。

エラーは次のとおりです。

System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (System.Reflection.Assembly,bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System.Reflection/Assembly.cs:402 
  at Realms.RealmSchema.<BuildDefaultSchema>m__3 (System.Reflection.Assembly a) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<SelectManyIterator>c__Iterator2`2[TSource,TResult].MoveNext () [0x00059] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/System.Core/System/Linq/Enumerable.cs:423 
  at System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () [0x00062] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/System.Core/System/Linq/Enumerable.cs:147 
  at Realms.RealmSchema.CreateSchemaForClasses (IEnumerable`1 classes, Realms.SchemaHandle schemaHandle) [0x00025] in <filename unknown>:0 
  at Realms.RealmSchema.BuildDefaultSchema () [0x00071] in <filename unknown>:0 
  at System.Lazy`1[T].CreateValue () [0x00075] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/Lazy.cs:437 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3539/f37444ae/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113 
4

2 に答える 2

1

@SushiHangover[Preserve (AllMembers = true)]RealmObject提案するように手動で追加する必要はありません。

したがって、これは Fody 製織ステップでは発生していないようです。それはバグかもしれません。また、私たちが構築する方法がPreserveAttribute、このバージョンの IOS のものと互換性がないため、保存するように機能していない可能性もあります。

Xamarin でリンクするための命名規則は非常に直感的ではありません。リンクをAttempt Stripping Unusedに置き換えると、名前がより意味のあるものになります。例: Don't Attempt Stripping Unused

RealmObjectサブクラスに独自のコンストラクターがありますか?

はい

使用されている正確な IOS と Xamarin Studio のバージョンを投稿していただけますか?

Xamarin のバージョンは 4.1.2.18 で、Xamarin.iOS のバージョンは 9.8.2.22 です。Xamarin Studio ではなく、VS 2015 Update 3 を使用しています。

問題 822を追加して、Realm でこれをかなり優先度の高いものとして追跡しました。

于 2016-09-07T10:04:16.930 に答える