代码之家  ›  专栏  ›  技术社区  ›  Nick

MvvmCross-Xamarin-Android挂在带有链接的启动屏幕上

  •  0
  • Nick  · 技术社区  · 6 年前

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

    初始化进程的正常流程:Setup.InitializeFirstChance设置-&燃气轮机;应用程序初始化-&燃气轮机;Setup.InitializeLastChance设置

    到目前为止,我能确定的是在这两者之间有什么地方出了问题应用程序初始化以及Setup.InitializeLastChance设置. 通过链接,应用程序可以运行到应用程序初始化但永远也达不到Setup.InitializeLastChance设置.

    我在下面附上了两个日志。两个日志都是从应用程序初始化. 第一个是链接到应用程序挂起。第二种方法是在开始之前不联系Setup.initializelatchange.

    带链接的日志

    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
    

    09-12 15:33:28.200 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: ViewModelTypeFinder start
    09-12 15:33:28.210 D/Mono( 8211) : Assembly Ref addref a.Core[0xe8a8d920] -> Acr.UserDialogs[0xe8a8cd20]: 3
    09-12 15:33:28.214 D/Mono    ( 8211): Assembly Ref addref Acr.UserDialogs[0xe8a8cd20] -> mscorlib[0xe8a8c480]: 70
    09-12 15:33:28.215 D/Mono    ( 8211): Assembly Ref addref netstandard[0xddd05840] -> System.Core[0xc60af900]: 8
    09-12 15:33:28.216 D/Mono( 8211) : Assembly Ref addref a.Core[0xe8a8d920] -> Splat[0xe8a8e280]: 2
    09-12 15:33:28.216 D/Mono    ( 8211): Assembly Ref addref Splat[0xe8a8e280] -> mscorlib[0xe8a8c480]: 71
    09-12 15:33:28.220 D/Mono( 8211) : Image addref System.Xml[0xddd065c0] -> System.Xml.dll[0xc1c03f00]: 2
    09-12 15:33:28.220 D/Mono( 8211) : Prepared to set up assembly 'System.Xml' (System.Xml.dll)
    09-12 15:33:28.220 D/Mono( 8211) : Assembly System.Xml[0xddd065c0] added to domain RootDomain, ref_count= 1
    09-12 15:33:28.222 D/Mono    ( 8211): 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:33:28.222 D/Mono( 8211) : 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:33:28.223 D/Mono( 8211) : Config attempting to parse: 'System.Xml.dll.config'.Loaded assembly: System.Xml.dll[External]
    
    09-12 15:33:28.223 D/Mono( 8211) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Xml/System.Xml.config'.
    09-12 15:33:28.223 D/Mono( 8211) : Assembly Ref addref netstandard[0xddd05840] -> System.Xml[0xddd065c0]: 2
    09-12 15:33:28.223 D/Mono( 8211) : Assembly Ref addref System.Xml[0xddd065c0] -> mscorlib[0xe8a8c480]: 72
    09-12 15:33:28.224 D/Mono    ( 8211): Assembly Ref addref a.Core[0xe8a8d920] -> Plugin.Permissions[0xe8a8dd40]: 2
    09-12 15:33:28.224 D/Mono    ( 8211): Assembly Ref addref Plugin.Permissions[0xe8a8dd40] -> mscorlib[0xe8a8c480]: 73
    09-12 15:33:28.224 D/Mono    ( 8211): Assembly Ref addref a.Core[0xe8a8d920] -> Plugin.InAppBilling.Abstractions[0xe8a8d9e0]: 3
    09-12 15:33:28.227 D/Mono    ( 8211): Unloading image System.Runtime.dll[0xc1c04400].Loaded assembly: System.Net.Http.dll[External]
    
    09-12 15:33:28.228 D/Mono( 8211) : Image addref System.Runtime[0xddd05a20] -> System.Runtime.dll[0xc60ec000]: 11
    09-12 15:33:28.228 D/Mono( 8211) : Config attempting to parse: 'System.Runtime.dll.config'.
    09-12 15:33:28.228 D/Mono( 8211) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Runtime/System.Runtime.config'.
    09-12 15:33:28.228 D/Mono( 8211) : Assembly Ref addref Plugin.InAppBilling.Abstractions[0xe8a8d9e0] -> System.Runtime[0xc60af660]: 9
    09-12 15:33:28.229 D/Mono    ( 8211): Assembly Ref addref a.Core[0xe8a8d920] -> MvvmCross.Plugin.Network[0xe8a8d800]: 2
    09-12 15:33:28.232 D/Mono    ( 8211): Image addref System.Net.Http[0xddd05a20] -> System.Net.Http.dll[0xc1c05d00]: 2
    09-12 15:33:28.232 D/Mono( 8211) : Prepared to set up assembly 'System.Net.Http' (System.Net.Http.dll)
    09-12 15:33:28.232 D/Mono( 8211) : Assembly System.Net.Http[0xddd05a20] added to domain RootDomain, ref_count= 1
    09-12 15:33:28.233 D/Mono    ( 8211): 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:33:28.234 D/Mono( 8211) : 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:33:28.234 D/Mono( 8211) : Config attempting to parse: 'System.Net.Http.dll.config'.
    09-12 15:33:28.234 D/Mono( 8211) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Net.Http/System.Net.Http.config'.
    09-12 15:33:28.234 D/Mono( 8211) : Assembly Ref addref netstandard[0xddd05840] -> System.Net.Http[0xddd05a20]: 2
    09-12 15:33:28.234 D/Mono( 8211) : Assembly Ref addref System.Net.Http[0xddd05a20] -> mscorlib[0xe8a8c480]: 74
    09-12 15:33:28.234 D/Mono    ( 8211): Assembly Ref addref a.Core[0xe8a8d920] -> Newtonsoft.Json[0xe8a8db00]: 3
    09-12 15:33:28.256 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: ViewsContainer start
    09-12 15:33:28.259 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: Views start
    09-12 15:33:28.289 D/Mono( 8211) : Image addref System.Runtime.Serialization[0xddd05cc0] -> System.Runtime.Serialization.dll[0xc1c06700]: 2
    Loaded assembly: System.Runtime.Serialization.dll[External]09-12 15:33:28.289 D/Mono( 8211) : Prepared to set up assembly 'System.Runtime.Serialization' (System.Runtime.Serialization.dll)
    
    09-12 15:33:28.289 D/Mono( 8211) : Assembly System.Runtime.Serialization[0xddd05cc0] added to domain RootDomain, ref_count= 1
    09-12 15:33:28.290 D/Mono    ( 8211): AOT: image 'System.Runtime.Serialization.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Runtime.Serialization.dll.so" not found
    09-12 15:33:28.291 D/Mono( 8211) : AOT: image '/usr/local/lib/mono/aot-cache/x86/System.Runtime.Serialization.dll.so' not found: dlopen failed: library "/data/app/a.Droid-1/lib/x86/libaot-System.Runtime.Serialization.dll.so" not found
    09-12 15:33:28.291 D/Mono( 8211) : Config attempting to parse: 'System.Runtime.Serialization.dll.config'.
    09-12 15:33:28.291 D/Mono( 8211) : Config attempting to parse: '/usr/local/etc/mono/assemblies/System.Runtime.Serialization/System.Runtime.Serialization.config'.
    09-12 15:33:28.291 D/Mono( 8211) : Assembly Ref addref Mono.Android[0xc60af600] -> System.Runtime.Serialization[0xddd05cc0]: 2
    09-12 15:33:28.291 D/Mono    ( 8211): Assembly Ref addref System.Runtime.Serialization[0xddd05cc0] -> mscorlib[0xe8a8c480]: 75
    09-12 15:33:28.395 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: CommandCollectionBuilder start
    09-12 15:33:28.396 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: NavigationSerializer start
    09-12 15:33:28.398 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: InpcInterception start
    09-12 15:33:28.399 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: InpcInterception start
    09-12 15:33:28.402 V/MvvmCross.Core.MvxSetup( 8211): [Verbose] Setup: LastChance start
    09-12 15:33:28.433 D/Mono( 8211) : Assembly Ref addref a.Droid[0xe8a8c600] -> Plugin.LocalNotifications[0xe8a8dce0]: 2
    09-12 15:33:28.433 D/Mono    ( 8211): Assembly Ref addref Plugin.LocalNotifications[0xe8a8dce0] -> mscorlib[0xe8a8c480]: 76
    09-12 15:33:28.433 D/Mono    ( 8211): Assembly Ref addref Plugin.LocalNotifications[0xe8a8dce0] -> Plugin.LocalNotifications.Abstractions[0xe8a8dc80]: 2
    

    非常感谢您的帮助。

    尼克

    1 回复  |  直到 6 年前
        1
  •  4
  •   Mikolaj Kieres    6 年前

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

    linker.config . 你将得到更多的控制什么 不应该被联系起来 有了它-设置起来也很容易。

    一旦你有了 链接器.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>
    

    我的列表中列出了更多的程序集 链接器.config 链接器.config 归档并检查您是否仍遇到问题。

    如果你的应用程序仍在消亡,那么我倾向于在链接器文件中逐字列出你的所有程序集(项目引用),如下所示:

    <assembly fullname="<Assembly_Name>">
        <type fullname="*"/>
    </assembly>
    <assembly fullname="<Assembly_2_Name>">
        <type fullname="*"/>
    </assembly>
    

    MvvmCross 导致问题的东西,很可能是完全不同的库/程序集。所有程序集的这个列表基本上将指示链接器 Type 在这些组件中(不会剥离任何东西!)。应用程序应该运行得很好。一旦完成,就开始从列表中删除程序集。你可以一个接一个地做,或者把它一分为二,去掉前半部分或者后半部分——基本上开始消除装配。这样做时,可能需要删除 bin obj ,以及每个程序集的删除-只是为了确保dll的重新生成。