1

Akavache 的实现适用于 Android 调试和发布以及 iOS 调试模式。但是,它在 iOS 发布模式下崩溃。

从 Raygun 截获的引发的异常是“Akavache.Sqlite3.Internal.SQLiteConnection”的类型初始化程序引发了异常。

只需部署 iOS 发布模式并获得异常提示。感谢遇到类似问题的人是否可以提供帮助。

Akavache 版本是 6.0.0-alpha0038。

完整的堆栈跟踪如下:

Akavache.Sqlite3.SQLitePersistentBlobCache..ctor(System.String databaseFile, System.Reactive.Concurrency.IScheduler scheduler) in :0 Akavache.Sqlite3.Registrations+<>c__DisplayClass0_0.b__2() in :0

Akavache.Sqlite3.Registrations+<>c__DisplayClass0_0.b__3() in :0 Splat.ModernDependencyResolver.GetService(System.Type serviceType, System.String contract) in <412cf7afb8e84872aee33a6b0acc7f20#a572ceb4cff14caae1629fe17a67dfc3>:0 Splat.DependencyResolver.SplatMixins.( IDependencyResolver This, System.String contract) in <412cf7afb8e84872aee33a6b0acc7f20#a572ceb4cff14caae1629fe17a67dfc3>:0 Akavache.BlobCache.get_UserAccount() in <6b3110b6f37348ddb9bd9456cdb85f61#a572ceb4cff14caae1629fe17a67dfc3>:0 XXX.UI.CompositionRoot.CreateBlobCache() in <2815cf10ecb04f8fa012a0a005f4202e#a572ceb4cff14caae1629fe17a67dfc3>:0

XXX.UI.CompositionRoot.CreateApp() in <2815cf10ecb04f8fa012a0a005f4202e#a572ceb4cff14caae1629fe17a67dfc3>:0 XXX.UI.CompositionRoot.LoggedCreation[T](System.Func`1[TResult] factory) in <2815cf10ecb04f8fa012a0a005f4202e#a572ceb4cff14caae1629fe17a67dfc3>:0 XXX.UI. CompositionRoot.CreateApp() 在 <2815cf10ecb04f8fa012a0a005f4202e#a572ceb4cff14caae1629fe17a67dfc3>:0

<2815cf10ecb04f8fa012a0a005f4202e#a572ceb4cff14caae1629fe17a67dfc3> 中的 XXX.UI.CompositionRoot.ResolveApp():0 XXX.UI.iOS.AppDelegate.ResolveApplication(XXX.UI.CompositionRoot compositionRoot) in :0 XXX.UI.iOS.AppDelegate.Finished.Launching( app, Foundation.NSDictionary options) in :0 UIKit.UIApplication.Main(System.String[] args, System.IntPtr principal, System.IntPtr delegate) in :0 UIKit.UIApplication.Main(System.String[] args, System .String principalClassName, System.String delegateClassName) in :0 XXX.UI.iOS.Application.Main(System.String[] args) in :0

4

1 回答 1

4

可能是链接的问题...

您可以尝试跳过 Akavache Dll 的链接吗?

或者使用链接器文件排除它们并查看是否有效?

还要确保你有https://github.com/PureWeen/Akavache/blob/3bd03246a6e198bde5eb93a54646dd9f25fc15a1/src/Akavache.Sqlite3/content/AkavacheSqliteLinkerOverride.cs.pp

平台项目中的文件

iOS 的主要问题是 Xamarin 工具使用静态分析来删除它不认为您的任何代码引用的 dll。Akavache 使用反射来查找您是否正在使用 Xamarin 无法检测到的 SqlLite Dll,因此使用删除 DLL 的发布版本:-/

Override 类只是给出了你想要那个 Dll 的工具信息

于 2017-11-18T18:19:02.803 回答