[LayaNative 1.0]新的安卓闪退

#00 pc 00000000006b12f8 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::Context::native_context()+0) [arm64-v8a]
2 #01 pc 0000000000658444 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::Isolate::GetCurrentContext()+20) [arm64-v8a]
3 #02 pc 000000000065e234 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)+40) [arm64-v8a]
4 #03 pc 000000000043f9f4 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (laya::JSObjBaseV8::ReleaseRefArray()+92) [arm64-v8a]
5 #04 pc 00000000004735b8 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so [arm64-v8a]
6 #05 pc 00000000007128e4 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::GlobalHandles::PostMarkSweepProcessing(int)+488) [arm64-v8a]
7 #06 pc 0000000000712f60 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::GlobalHandles::PostGarbageCollectionProcessing(v8::internal::GarbageCollector, v8::GCCallbackFlags)+100) [arm64-v8a]
8 #07 pc 000000000073c958 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags)+512) [arm64-v8a]
9 #08 pc 000000000073ccd0 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, char const*, char const*, v8::GCCallbackFlags)+164) [arm64-v8a]
10 #09 pc 00000000006f07c4 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace)+120) [arm64-v8a]
11 #10 pc 0000000000a43e84 /data/app/com.mylafe.game.handsomecat-HnSTBrLpuwmUdM8n0CAtog==/lib/arm64/liblayaair.so (v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*)+108) [arm64-v8a]
12 #11 pc 000000729a4062e4 <unknown>
13 java:
 
# main(1)
1 android.os.MessageQueue.nativePollOnce(Native Method)
2 android.os.MessageQueue.next(MessageQueue.java:386)
3 android.os.Looper.loop(Looper.java:175)
4 android.app.ActivityThread.main(ActivityThread.java:7625)
5 java.lang.reflect.Method.invoke(Native Method)
6 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
7 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
 
# ReferenceQueueDaemon(9087)
1 java.lang.Object.wait(Native Method)
2 java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
3 java.lang.Daemons$Daemon.run(Daemons.java:103)
4 java.lang.Thread.run(Thread.java:784)
 
# FinalizerDaemon(9088)
1 java.lang.Object.wait(Native Method)
2 java.lang.Object.wait(Object.java:422)
3 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
4 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
5 java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
6 java.lang.Daemons$Daemon.run(Daemons.java:103)
7 java.lang.Thread.run(Thread.java:784)新的报错堆栈 ,也不是必先,这种有办法可以怎么跳过,或者代码加个保护吗? 或者是因为什么代码导致的?
已邀请:

bearocean

赞同来自:

你好! Nevermore, 请问你这个问题有没有解决? 我也出现了完全一致的问题。
Android native 偶发性闪退,目测发生在v8垃圾收集中
 
栈信息整理
liblayaair.so:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x97ffffffff
(signal 11 说明是内存问题)
(v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*)+108)
(v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace)+120)
(v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, char const*, char const*, v8::GCCallbackFlags)+164)
(v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags)+512)
(v8::internal::GlobalHandles::PostGarbageCollectionProcessing(v8::internal::GarbageCollector, v8::GCCallbackFlags)+100)
(v8::internal::GlobalHandles::PostMarkSweepProcessing(int)+488)
(laya::JSObjBaseV8::ReleaseRefArray()+92)
(v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)+40)
(v8::Isolate::GetCurrentContext()+20)
(v8::internal::Context::native_context())
从栈信息来看,崩溃点执行的代码大概逻辑是:
分配内存空间
当前满足垃圾收集条件,先进行垃圾收集
垃圾收集进了Laya的代码? (JSObjBaseV8::ReleaseRefArray)
出现内存错误导致崩溃
 

要回复问题请先

商务合作
商务合作