草庐IT

Unity导出到AS中真机测试apk没有问题,aab提交到GooglePlay审核通过,但是从Google Play下载的应用闪退问题

ShirleyShine 2024-07-08 原文

兄弟们,姐妹们,历尽两个月,改得我都怀疑自己适不适合搞这行了!!!真的是把网上说得可能得问题和解决方法都尝试了一遍,快疯了!!

看google开发者后台得测试报告,提供得crash信息:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr ffffffffffffffff
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
Build fingerprint: 'google/redfin/redfin:11/RQ3A.211001.001/7641976:user/release-keys'
Revision: 'MP1.0'
pid: 23182, tid: 23578, name: UnityMain  >>> com.xxx.xxx <<<
    x0   ffffffffffffffff  x1   534a3a1a643b66a4  x2   0000000000000001  x3   0000000000000002
    x4   00000000ffffffff  x5   0000000000000000  x6   0000000000000012  x7   0000007ecdf9e1d0
    x8   0000007c9071dfb8  x9   534a3a1a643b66a4  x10  000000002e736f00  x11  0000000000000000
    x12  000000002e736f00  x13  000000002e716900  x14  0000000000000001  x15  0000000000000009
    x16  0000007fb0f8db50  x17  0000007fb0f23084  x18  000000002aaf39ad  x19  0000007c9071bbe0
    x20  534a3a1a643b66a4  x21  ffffffffffffffff  x22  0000007fb350e3b8  x23  0000007c9071bb30
    x24  0000007c9071bb10  x25  0000007fb476f000  x26  0000007fb476f000  x27  0000007c9071e000
    x28  0000000000000000  x29  0000007c9071baf0  x30  0000007c83d7711c
    sp   0000007c9071baa0  pc   0000007c83d77128  pstate 0000000020001000
backtrace:
	#00  pc 00000000000005bc  [vdso] ()
	#01  pc 00000000007e7124  /data/app/~~Nls7zScPmwKrus3S9v6Sgw==/com.xxx.xxxx-HlQF7QyJI5KnDR1b5Ir73g==/split_config.arm64_v8a.apk ()
	#02  pc 0000000000000dd4  /apex/com.android.runtime/bin/linker64 (__dl__Z18do_dl_iterate_phdrPFiP12dl_phdr_infomPvES1_+260)
	#03  pc 00000000000003d8  /apex/com.android.runtime/bin/linker64 (__loader_dl_iterate_phdr+48)
	#04  pc 00000000000000a0  /apex/com.android.runtime/lib64/bionic/libdl.so (dl_iterate_phdr+8)
	#05  pc 00000000007e702c  /data/app/~~111==/com.x.newzombie-xxxxx==/split_config.arm64_v8a.apk ()
	#06  pc 00000000007ae480  /data/app/~~111==/com.xxx.xxx-xxx==/split_config.arm64_v8a.apk ()
	#07  pc 000000000067fa94  /data/app/~~111==/com.xxx.xxx-xxx==/split_config.arm64_v8a.apk ()
	#08  pc 00000000006d1134  /data/app/~~111==/com.xxx.xxx-xxx==/split_config.arm64_v8a.apk ()
	#09  pc 00000000006d180c  /data/app/~~111==/com.xxx.xxx-xxx==/split_config.arm64_v8a.apk ()
	#10  pc 00000000006dea88  /data/app/~~111==/com.xxx.xxx-xxx==/split_config.arm64_v8a.apk ()
	#11  pc 0000000000012ed4  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148)
	#12  pc 0000000000009564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
	#13  pc 000000000007ea6c  /apex/com.android.art/lib64/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+200)
	#14  pc 00000000001ec5ec  /apex/com.android.art/lib64/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPNS_11ShadowFrameEtPNS_6JValueE+376)
	#15  pc 00000000001e26b0  /apex/com.android.art/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+912)
	#16  pc 0000000000547728  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+568)
	#17  pc 0000000000003914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
	#18  pc 80200801fffffffc  <unknown/absolute> ()

这只是其中一份crash,还有另外4份类似得crash,根据网上得教程,都说去看logcat

中的详细信息,看具体是什么问题,然而,我想说,原谅鄙人比较菜,猜测可能是缺少对应的依赖架构,像提到的lib64,arm64_v8a,是否是这个so文件的问题,然后又去追溯so文件是哪里来的,起什么作用。。。。只想说,白扯。

但是的确没有其他可用的或者说是可参考的log。真真的是要秃。

然后换思维,为什么真机测试可以,商店中下载的闪退呢?真机测试是直接安装apk,商店中提交的是aab,分析同一个工程打出的apk和aab包的区别:

很明确的一点,aab的包在商店中会根据不同的环境下载对应的arm64_v8a,armeabi-v7a,而apk包中arm64_v8a和armeabi-v7a会直接全部打包进去。

再回到crash提到:split_config.arm64_v8a.apk,正好对应,的确可能是架包拆分导致的问题,优先解决这个问题。

发现了一个属性参数:android:extractNativeLibs="true",这个属性有个特殊性,是针对apk瘦身的,再gradle版本较高的时候 android:extractNativeLibs的默认值发生了变化,

我使用的是gradle3.5.4,minisdkversion=19,所以在AndroidManifest.xml中在<application>标签,添加:

<application 
        android:extractNativeLibs="true" 
        android:theme="@style/UnityThemeSelector" 
        android:label="@string/app_name" 
        android:icon="@mipmap/app_icon">

具体想了解的可以去查询这个属性,论坛上有详细的说明。

添加完后测试,发现了新的问题,但至少人家开始有error的报错了,感动。

error:Using memoryadresses from more that 16GB of memory

这个查看下来是因为使用的unity2018.3.11f,据unity官方论坛中讨论,这个版本就是在IL2CPP打包并且Target Architecture to ARM64时,会导致启动app在闪屏时crash

这万万没想到,是unity的坑啊!!!解决办法就是更新unity版本,两行眼泪流下来啊!!!

贴上链接:

​​​​​t​​​​​Unity Issue Tracker - [Android][IL2CPP] App crashes during launch with "Using memoryadresses from more than 16GB of memory" messages on Android 11Repro steps: 1. Create a new project 2. Switch build target to Android 3. Set Scripting Backend to IL2CPP and Target Architecture to...https://issuetracker.unity3d.com/issues/android-il2cpp-empty-project-crashes-on-launch-with-using-memoryadresses-from-more-than-16gb-of-memory-messages 于是我们更新了unity版本,unity2018.4.36,终于解决了闪退问题!

            

有关Unity导出到AS中真机测试apk没有问题,aab提交到GooglePlay审核通过,但是从Google Play下载的应用闪退问题的更多相关文章

  1. ruby-on-rails - 结合 meta_search 与 acts_as_taggable_on - 2

    我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  5. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  6. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  9. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

  10. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

随机推荐