C# MvvmCross Xamarin Android在启动屏幕上挂起链接

C# MvvmCross Xamarin Android在启动屏幕上挂起链接,c#,xamarin.android,mvvmcross,C#,Xamarin.android,Mvvmcross,我将MvvmCross 6.1.2与Xamarin Android一起使用。通过链接“sdk和用户程序集”,我的应用程序将挂起在启动屏幕上。与其他链接问题不同,日志中没有错误。不知道怎么修 初始化进程的正常流程是:Setup.InitializeFirstChance->App.Initialize->Setup.InitializeLastChance 到目前为止,我能确定的是App.Initialize和Setup.initializeLasChance之间出现了一些错误。通过链接,应用程序

我将MvvmCross 6.1.2与Xamarin Android一起使用。通过链接“sdk和用户程序集”,我的应用程序将挂起在启动屏幕上。与其他链接问题不同,日志中没有错误。不知道怎么修

初始化进程的正常流程是:Setup.InitializeFirstChance->App.Initialize->Setup.InitializeLastChance

到目前为止,我能确定的是App.Initialize和Setup.initializeLasChance之间出现了一些错误。通过链接,应用程序可以一直运行到应用程序的末尾。初始化但永远不会到达Setup.InitializeLasChance

我在下面附上了2个日志。从App.Initialize结束时记录的两个日志。第一个是链接到应用程序挂起。第二种方法是在Setup.InitializeLastChange开始之前不进行链接

链接日志

09-12 15:23:40.260 V/MvvmCross.Core.MvxSetup( 7685): [Verbose] Setup: ViewModelTypeFinder start
Thread started: <Thread Pool> #12
09-12 15:23:40.292 D/Mono( 7685) : Assembly Ref addref a.Core[0xd727b560] -> Acr.UserDialogs[0xd727a9c0]: 3
09-12 15:23:40.294 D/Mono    ( 7685): Assembly Ref addref Acr.UserDialogs[0xd727a9c0] -> mscorlib[0xd727a180]: 73
09-12 15:23:40.295 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> System.Core[0xc61b91e0]: 8
09-12 15:23:40.295 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> Splat[0xd727bd40]: 2
09-12 15:23:40.295 D/Mono    ( 7685): Assembly Ref addref Splat[0xd727bd40] -> mscorlib[0xd727a180]: 74
09-12 15:23:40.298 D/Mono( 7685) : Image addref System.Xml[0xddd06500] -> System.Xml.dll[0xc1166000]: 2
09-12 15:23:40.299 D/Mono( 7685) : Prepared to set up assembly 'System.Xml' (System.Xml.dll)
09-12 15:23:40.299 D/Mono( 7685) : Assembly System.Xml[0xddd06500] added to domain RootDomain, ref_count= 1
09-12 15:23:40.300 D/Mono    ( 7685): AOT: image 'System.Xml.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Xml.dll.so" not found
09-12 15:23:40.300 D/Mono( 7685) : AOT: image '/usr/local/lib/mono/aot-cache/x86/System.Xml.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Xml.dll.so" not found
09-12 15:23:40.301 D/Mono( 7685) : Config attempting to parse: 'System.Xml.dll.config'.
09-12 15:23:40.301 D/Mono( 7685) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Xml/System.Xml.config'.
09-12 15:23:40.301 D/Mono( 7685) : Assembly Ref addref a.Core[0xd727b560] -> System.Xml[0xddd06500]: 2Loaded assembly: System.Xml.dll[External]

09-12 15:23:40.301 D/Mono    ( 7685): Assembly Ref addref System.Xml[0xddd06500] -> mscorlib[0xd727a180]: 75
09-12 15:23:40.302 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> Plugin.Permissions[0xd727b980]: 2
09-12 15:23:40.302 D/Mono    ( 7685): Assembly Ref addref Plugin.Permissions[0xd727b980] -> mscorlib[0xd727a180]: 76
09-12 15:23:40.302 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> Plugin.InAppBilling.Abstractions[0xd727b620]: 3
09-12 15:23:40.302 D/Mono    ( 7685): Assembly Ref addref Plugin.InAppBilling.Abstractions[0xd727b620] -> mscorlib[0xd727a180]: 77
09-12 15:23:40.304 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> MvvmCross.Plugin.Network[0xd727b440]: 2Loaded assembly: System.Net.Http.dll[External]
09-12 15:23:40.308 D/Mono    ( 7685): Image addref System.Net.Http[0xddd06680] -> System.Net.Http.dll[0xc1168300]: 2

09-12 15:23:40.308 D/Mono( 7685) : Prepared to set up assembly 'System.Net.Http' (System.Net.Http.dll)
09-12 15:23:40.308 D/Mono( 7685) : Assembly System.Net.Http[0xddd06680] added to domain RootDomain, ref_count= 1
09-12 15:23:40.310 D/Mono    ( 7685): AOT: image 'System.Net.Http.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Net.Http.dll.so" not found
09-12 15:23:40.310 D/Mono( 7685) : AOT: image '/usr/local/lib/mono/aot-cache/x86/System.Net.Http.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Net.Http.dll.so" not found
09-12 15:23:40.310 D/Mono( 7685) : Config attempting to parse: 'System.Net.Http.dll.config'.
09-12 15:23:40.310 D/Mono( 7685) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Net.Http/System.Net.Http.config'.
09-12 15:23:40.310 D/Mono( 7685) : Assembly Ref addref a.Core[0xd727b560] -> System.Net.Http[0xddd06680]: 2
09-12 15:23:40.310 D/Mono    ( 7685): Assembly Ref addref System.Net.Http[0xddd06680] -> mscorlib[0xd727a180]: 78
09-12 15:23:40.310 D/Mono    ( 7685): Assembly Ref addref a.Core[0xd727b560] -> Newtonsoft.Json[0xd727b740]: 3
09-12 15:23:40.310 D/Mono    ( 7685): Assembly Ref addref Newtonsoft.Json[0xd727b740] -> System.Core[0xc61b91e0]: 9
09-12 15:23:40.310 D/Mono    ( 7685): Assembly Ref addref Newtonsoft.Json[0xd727b740] -> System[0xc61bbd00]: 12
09-12 15:23:40.345 V/MvvmCross.Core.MvxSetup( 7685): [Verbose] Setup: ViewsContainer start
09-12 15:23:40.348 V/MvvmCross.Core.MvxSetup( 7685): [Verbose] Setup: Views start
非常感谢您的帮助

谢谢


尼克

这种情况很烦人,很难诊断

首先,我建议使用。您可以更好地控制哪些内容不应与它链接起来,这也很容易设置

一旦你有了
linker.config
文件,我建议你尝试我的一个应用程序使用的设置:

<?xml version="1.0" encoding="utf-8"?>
<linker>   
    <assembly fullname="MvvmCross">
        <type fullname="MvvmCross.IoC.MvxPropertyInjector"/>
        <namespace fullname="MvvmCross.ViewModels" />
    </assembly>
    <assembly fullname="MvvmCross.Forms">
        <type fullname="MvvmCross.Forms.Platforms.Android.Views.MvxFormsAppCompatActivity"/>
    </assembly>
    <assembly fullname="MvvmCross.Droid.Support.V7.AppCompat">
        <type fullname="MvxAppCompatActivity"/>
    </assembly>
</linker>

我这样做是因为,尽管您可能会认为是
MvvmCross
之类的东西导致了问题,但很可能是完全不同的库/程序集。此列表,包括所有程序集,基本上会指示链接器在这些程序集中保留所有
类型
(不会删除任何内容!)。应用程序应该运行得很好。完成后,您将开始从列表中删除程序集。你可以一个接一个地做,或者把它一分为二,然后移除第一个或第二个部分——基本上开始消除装配。当您这样做时,您可能需要删除
bin
obj
,每次都要删除程序集-只是为了确保重新生成dll。

这种情况非常烦人,很难诊断

首先,我建议使用。您可以更好地控制哪些内容不应与它链接起来,这也很容易设置

一旦你有了
linker.config
文件,我建议你尝试我的一个应用程序使用的设置:

<?xml version="1.0" encoding="utf-8"?>
<linker>   
    <assembly fullname="MvvmCross">
        <type fullname="MvvmCross.IoC.MvxPropertyInjector"/>
        <namespace fullname="MvvmCross.ViewModels" />
    </assembly>
    <assembly fullname="MvvmCross.Forms">
        <type fullname="MvvmCross.Forms.Platforms.Android.Views.MvxFormsAppCompatActivity"/>
    </assembly>
    <assembly fullname="MvvmCross.Droid.Support.V7.AppCompat">
        <type fullname="MvxAppCompatActivity"/>
    </assembly>
</linker>

我这样做是因为,尽管您可能会认为是
MvvmCross
之类的东西导致了问题,但很可能是完全不同的库/程序集。此列表,包括所有程序集,基本上会指示链接器在这些程序集中保留所有
类型
(不会删除任何内容!)。应用程序应该运行得很好。完成后,您将开始从列表中删除程序集。你可以一个接一个地做,或者把它一分为二,然后移除第一个或第二个部分——基本上开始消除装配。当你这样做的时候,你可能想删除
bin
obj
,每一次程序集的删除-只是为了额外确保dll被重新生成。

你有LinkerPleaseInclude文件或是一些提示MvvmCross部件不要接触链接的东西吗?是的,我有。我有Mvx的标准LinkerPleaseInclude,对我自己的代码做了一些更改。您有LinkerPleaseInclude文件或提示哪些MvvmCross部件不应接触链接的内容吗?是的,我有。我有Mvx的标准LinkerPleaseInclude,对我自己的代码做了一些更改。你做到了。是国际奥委会。包括它之后,初始化是平滑的。非常感谢,你做到了。是国际奥委会。包括它之后,初始化是平滑的。非常感谢你。
<assembly fullname="<Assembly_Name>">
    <type fullname="*"/>
</assembly>
<assembly fullname="<Assembly_2_Name>">
    <type fullname="*"/>
</assembly>