答案 0 :(得分:4)
Xamarin.Android linker和Xamarin.iOS linker从已编译的应用程序中删除未使用的代码。他们检查编译后的代码,并删除所有看起来好像在应用程序运行期间将被引用的代码。
由于此分析是在编译后的二进制文件上进行的(例如,静态分析),因此在某些情况下,应用程序使用会使用某些代码,但链接程序无法检测到这种用法。因此,链接器将删除此代码,即使使用该代码也是如此。当应用程序实际运行时,这将导致问题。
引用的Akavache.doc文档暗示Akavache.Sqlite3是其中一种情况,其中Xamarin链接器将无法告知其正在使用,因此链接器将错误地将其删除。文档建议您添加引用,以防止Xamarin链接程序删除Akavache.Sqlite3-即,防止Xamarin将链接库“链接”到您的应用程序。