安全补丁级别打破

安全补丁级别打破

本文介绍了2016-10-05 安全补丁级别打破 Nexus-9 Xamarin的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用 Xamarin Forms 2.3 进行安全更新后,我的应用程序仅在 Nexus 9 上发生以下崩溃.它适用于我的 Pixel-C、Samsung S2、Samsung Tab A 和 Dell Venue,这让我很困惑.这仅发生在 2016-10-05 安全补丁之后.我有 2 个 Nexus 9 并确认它在补丁之前可以正常工作.

I am getting the following crash on our application for only the Nexus 9 after the security update using Xamarin Forms 2.3. It works fine for my Pixel-C, Samsung S2, Samsung Tab A and Dell Venue which is confusing me. This only occurred after 2016-10-05 security patch. I have 2 Nexus 9's and confirmed it was working prior to the patch.

如有任何帮助,我们将不胜感激.

Any assistance would be greatly appreciated.

    10-24 23:36:50.460 13310 13310 D Mono    : Assembly Loader probing location: '/storage/emulated/0/Android/data/PlayerLync.AndroidLync/files/.__override__/System
.Linq.dll'.
10-24 23:36:50.461 13310 13310 D Mono    : AOT module '/storage/emulated/0/Android/data/PlayerLync.AndroidLync/files/.__override__/System.Linq.dll.so' not found
: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libaot-System.Linq.dll.so" not found
10-24 23:36:50.462 13310 13310 D Mono    : AOT module '/Users/builder/data/lanes/3819/96c7ba6c/source/monodroid/builds/install/mono-armv7/lib/mono/aot-cache/arm
/System.Linq.dll.so' not found: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libaot-System.Linq.dll.so" not found
10-24 23:36:50.462 13310 13310 D Mono    : Assembly Ref addref Java.Interop[0xe98ed740] -> System.Linq[0xe98ed0e0]: 2
10-24 23:36:50.462 13310 13310 D Mono    : Image addref System.Core[0xe98edb60] -> System.Core.dll[0xc5350400]: 1
10-24 23:36:50.463 13310 13310 D Mono    : Assembly System.Core[0xe98edb60] added to domain RootDomain, ref_count=1
10-24 23:36:50.464 13310 13310 D Mono    : AOT module 'System.Core.dll.so' not found: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libaot-
System.Core.dll.so" not found
10-24 23:36:50.465 13310 13310 D Mono    : AOT module '/Users/builder/data/lanes/3819/96c7ba6c/source/monodroid/builds/install/mono-armv7/lib/mono/aot-cache/arm
/System.Core.dll.so' not found: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libaot-System.Core.dll.so" not found
10-24 23:36:50.465 13310 13310 D Mono    : Config attempting to parse: 'System.Core.dll.config'.
10-24 23:36:50.465 13310 13310 D Mono    : Config attempting to parse: '/Users/builder/data/lanes/3819/96c7ba6c/source/monodroid/builds/install/mono-armv7/etc/m
ono/assemblies/System.Core/System.Core.config'.
10-24 23:36:50.465 13310 13310 D Mono    : Assembly Ref addref System.Linq[0xe98ed0e0] -> System.Core[0xe98edb60]: 2
10-24 23:36:50.465 13310 13310 D Mono    : Assembly Ref addref System.Core[0xe98edb60] -> mscorlib[0xdfbaa8a0]: 10
10-24 23:36:50.469 13310 13310 D Mono    : Assembly Ref addref Java.Interop[0xe98ed740] -> System.Reflection.Extensions[0xe98ed260]: 2
10-24 23:36:50.469 13310 13310 D Mono    : Assembly Ref addref System.Reflection.Extensions[0xe98ed260] -> mscorlib[0xdfbaa8a0]: 11
10-24 23:36:50.483 13310 13310 D Mono    : Assembly Ref addref Mono.Android[0xe98ed6e0] -> System.Core[0xe98edb60]: 3
10-24 23:36:50.484 13310 13310 D Mono    : DllImport searching in: '__Internal' ('(null)').
10-24 23:36:50.484 13310 13310 D Mono    : Searching for 'monodroid_typemap_managed_to_java'.
10-24 23:36:50.484 13310 13310 D Mono    : Probing 'monodroid_typemap_managed_to_java'.
10-24 23:36:50.484 13310 13310 D Mono    : Found as 'monodroid_typemap_managed_to_java'.
10-24 23:36:50.500 13310 13310 D Mono    : DllImport searching in: '__Internal' ('(null)').
10-24 23:36:50.500 13310 13310 D Mono    : Searching for 'java_interop_jnienv_alloc_object'.
10-24 23:36:50.500 13310 13310 D Mono    : Probing 'java_interop_jnienv_alloc_object'.
10-24 23:36:50.500 13310 13310 D Mono    : Found as 'java_interop_jnienv_alloc_object'.
10-24 23:36:50.550 13310 13310 E mono-rt : Stacktrace:
10-24 23:36:50.550 13310 13310 E mono-rt :
10-24 23:36:50.550 13310 13310 E mono-rt :   at <unknown> <0xffffffff>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Android.Runtime.JNINativeWrapper.CreateDelegate (System.Delegate) <0x0014f>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Java.Lang.Thread/IUncaughtExceptionHandlerInvoker.GetUncaughtException_Ljava_lang_Thread_Ljava_lang_Throwable_Ha
ndler () <0x00093>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Android.Runtime.JNIEnv.RegisterJniNatives (intptr,int,intptr,intptr,int) <0x006db>
10-24 23:36:50.550 13310 13310 E mono-rt :   at (wrapper runtime-invoke) <Module>.runtime_invoke_void_intptr_int_intptr_intptr_int (object,intptr,intptr,intptr)
 <0x00137>
10-24 23:36:50.550 13310 13310 E mono-rt :   at <unknown> <0xffffffff>
10-24 23:36:50.550 13310 13310 E mono-rt :   at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_alloc_object (intptr,intptr&,intptr)
<0x00043>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Java.Interop.JniEnvironment/Object.AllocObject (Java.Interop.JniObjectReference) <0x0004f>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Java.Interop.JniType.AllocObject () <0x0003f>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Java.Interop.JniPeerMembers/JniInstanceMethods.StartCreateInstance (string,System.Type,Java.Interop.JniArgumentV
alue*) <0x000bb>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Java.Lang.Object..ctor () <0x00093>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Android.Runtime.UncaughtExceptionHandler..ctor (Java.Lang.Thread/IUncaughtExceptionHandler) <0x00017>
10-24 23:36:50.550 13310 13310 E mono-rt :   at Android.Runtime.JNIEnv.Initialize (Android.Runtime.JnienvInitializeArgs*) <0x00a6b>
10-24 23:36:50.550 13310 13310 E mono-rt :   at (wrapper runtime-invoke) <Module>.runtime_invoke_void_JnienvInitializeArgs* (object,intptr,intptr,intptr) <0x000
cf>
10-24 23:36:50.550 13310 13310 E mono-rt :
10-24 23:36:50.550 13310 13310 E mono-rt : Attempting native Android stacktrace:
10-24 23:36:50.550 13310 13310 E mono-rt :
10-24 23:36:50.552 13310 13310 E mono-rt :      Could not unwind with `libunwind.so`: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libunwi
nd.so" not found
10-24 23:36:50.552 13310 13310 E mono-rt :      Could not unwind with `libcorkscrew.so`: dlopen failed: library "/data/app/PlayerLync.AndroidLync-1/lib/arm/libc
orkscrew.so" not found
10-24 23:36:50.552 13310 13310 E mono-rt :
10-24 23:36:50.552 13310 13310 E mono-rt :      No options left to get a native stacktrace :-(
10-24 23:36:50.552 13310 13310 E mono-rt :
10-24 23:36:50.552 13310 13310 E mono-rt : =================================================================
10-24 23:36:50.552 13310 13310 E mono-rt : Got a SIGSEGV while executing native code. This usually indicates
10-24 23:36:50.552 13310 13310 E mono-rt : a fatal error in the mono runtime or one of the native libraries
10-24 23:36:50.552 13310 13310 E mono-rt : used by your application.
10-24 23:36:50.552 13310 13310 E mono-rt : =================================================================
10-24 23:36:50.552 13310 13310 E mono-rt :
10-24 23:36:50.552 13310 13310 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 13310 (ync.AndroidLync)
10-24 23:36:50.553   184   184 W         : debuggerd: handling request: pid=13310 uid=10100 gid=10100 tid=13310
10-24 23:36:50.618 13327 13327 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-24 23:36:50.618 13327 13327 F DEBUG   : Build fingerprint: 'google/volantis/flounder:7.0/NRD91D/3234828:user/release-keys'
10-24 23:36:50.618 13327 13327 F DEBUG   : Revision: '0'
10-24 23:36:50.618 13327 13327 F DEBUG   : ABI: 'arm'
10-24 23:36:50.618 13327 13327 F DEBUG   : pid: 13310, tid: 13310, name: ync.AndroidLync  >>> PlayerLync.AndroidLync <<<
10-24 23:36:50.618 13327 13327 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8
10-24 23:36:50.619 13327 13327 F DEBUG   :     r0 c5137dd8  r1 00004001  r2 00000000  r3 c5137de8
10-24 23:36:50.619 13327 13327 F DEBUG   :     r4 00000008  r5 e3df427c  r6 00001f3c  r7 00000004
10-24 23:36:50.619 13327 13327 F DEBUG   :     r8 00001f38  r9 00000004  sl c5137dd8  fp ffb6d1b8
10-24 23:36:50.619 13327 13327 F DEBUG   :     ip e3df42c0  sp ffb6d188  lr e3c242fc  pc e3b96a60  cpsr 800e0010
10-24 23:36:50.620 13327 13327 F DEBUG   :
10-24 23:36:50.620 13327 13327 F DEBUG   : backtrace:
10-24 23:36:50.620 13327 13327 F DEBUG   :     #00 pc 000dda60  /data/app/Mono.Android.DebugRuntime-1/lib/arm64/libmonosgen-32bit-2.0.so
10-24 23:36:50.837   589 13328 W ActivityManager:   Force finishing activity PlayerLync.AndroidLync/md5872c6b6fe477e181c02853c0ea5fed3c.MainActivity
10-24 23:36:50.846   184   184 W         : debuggerd: resuming target 13310

推荐答案

您是否在应用程序中使用 sqlite?将 Nexus 9 升级到 Android 7.0 后,我们遇到了类似的崩溃.事实证明,我们的自定义 sqlite 库没有包含 64 位文件.即使应用程序包含 arm64-v8a 选项,32 位 sqlite 库也会强制应用程序加载 armv7/32 位库.

Are you using sqlite in your application? We were getting similar crashes on our Nexus 9 after upgrading it to Android 7.0. It turned out that our custom sqlite library didn't have 64-bit file included. Even though the application includes arm64-v8a option, the 32-bit sqlite library forces the application to load armv7/32-bit libraries.

一旦我们使用 64 位 libsqlite.so 文件重建自定义 sqlite 库,并使用新的 sqlite 库重建应用程序,我们就不会再出现崩溃.

Once we rebuilt the custom sqlite library with 64-bit libsqlite.so file, and rebuilt the application with the new sqlite library, we are not getting crashes any more.

另请查看 Xamarin 发布的关于 Android 7.0 中本机库链接更改的帖子.https://blog.xamarin.com/preparing-for-native-library-linking-changes-in-android-n/

Please also check out the post from Xamarin about native library linking changes in Android 7.0.https://blog.xamarin.com/preparing-for-native-library-linking-changes-in-android-n/

这篇关于2016-10-05 安全补丁级别打破 Nexus-9 Xamarin的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-22 15:44