按官网git上的热更新,发现更新失败则会闪退.

报错截图.


代码截图:

求问, 每次失败 都被闪退,很影响体验. 求大神看看~~~~~~~

版本:1.4.2

手机版本 小米max 荣耀系列 都会
排查 错误日志 发现是在 org.cocos2dx.lib.Cocos2dxDownloader 开始. 可能是加载不到导致什么异常了.

`05-11 21:21:01.872: D/Cocos2dxDownloader(26899): onFailure(i:0 headers:null throwable:java.io.IOException: UnknownHostException exception: Unable to resolve host “cname.xxxx.com”: No address

associated with hostname file:/data/user/0/org.cocos2d.cname/files/cname-remote-asset_temp/res/raw-assets/res/image/img/img_girl.png.tmp
05-11 21:21:01.872: W/System.err(26899): at java.net.InetAddress.lookupHostByName(InetAddress.java:440)
05-11 21:21:01.872: W/System.err(26899): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
05-11 21:21:01.873: W/System.err(26899): at java.net.InetAddress.getAllByName(InetAddress.java:215)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:259)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:159)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:145)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
05-11 21:21:01.873: W/System.err(26899): at cz.msebera.android.httpclient.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:879)
05-11 21:21:01.874: W/System.err(26899): at cz.msebera.android.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
05-11 21:21:01.874: W/System.err(26899): at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:146)
05-11 21:21:01.874: W/System.err(26899): at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:177)
05-11 21:21:01.874: W/System.err(26899): at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:106)
05-11 21:21:01.874: W/System.err(26899): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-11 21:21:01.874: W/System.err(26899): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-11 21:21:01.874: W/System.err(26899): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-11 21:21:01.874: W/System.err(26899): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-11 21:21:01.874: W/System.err(26899): at java.lang.Thread.run(Thread.java:818)
05-11 21:21:01.875: D/Cocos2dxDownloader(26899): onFailure(i:0 headers:null throwable:java.io.IOException: UnknownHostException exception: Unable to resolve host “cname.xxxx.com”: No address

associated with hostname file:/data/user/0/org.cocos2d.cname/files/cname-remote-asset_temp/res/import/5c/5c6819b1-1fa0-4df7-84a9-6d0c537098ae.json.tmp
05-11 21:21:01.881: A/libc(26899): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x657a696c in tid 26918 (GLThread 342)
05-11 21:21:01.934: A/DEBUG(532): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-11 21:21:01.934: A/DEBUG(532): Build fingerprint: ‘Xiaomi/hydrogen/hydrogen:6.0.1/MMB29M/V8.2.3.0.MBCCNDL:user/release-keys’
05-11 21:21:01.934: A/DEBUG(532): Revision: ‘0’
05-11 21:21:01.934: A/DEBUG(532): ABI: ‘arm’
05-11 21:21:01.934: A/DEBUG(532): pid: 26899, tid: 26918, name: GLThread 342 >>> org.cocos2d.cname <<<
05-11 21:21:01.934: A/DEBUG(532): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x657a696c
05-11 21:21:01.958: A/DEBUG(532): r0 ab1908b8 r1 ef4ea1e4 r2 b1356332 r3 ef4ea1e4
05-11 21:21:01.959: A/DEBUG(532): r4 e04c39cc r5 657a696c r6 ab1908b8 r7 ac27ad30
05-11 21:21:01.959: A/DEBUG(532): r8 ac3ff788 r9 ac3ff788 sl 00000000 fp ef4ea20c
05-11 21:21:01.959: A/DEBUG(532): ip a0000000 sp ef4ea1d0 lr dfcc8c68 pc 657a696c cpsr 600f0010
05-11 21:21:01.978: A/DEBUG(532): backtrace:
05-11 21:21:01.978: A/DEBUG(532): #00 pc 657a696c
05-11 21:21:01.979: A/DEBUG(532): #01 pc 01608c64 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so (_ZN7cocos2d9extension15AssetsManagerEx12queueDowloadEv+244)
05-11 21:21:01.979: A/DEBUG(532): #02 pc 01607cfc /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so (_ZN7cocos2d9extension15AssetsManagerEx9fileErrorERKSsS3_ii+332)
05-11 21:21:01.979: A/DEBUG(532): #03 pc 01608180 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so (_ZN7cocos2d9extension15AssetsManagerEx7onErrorERKNS_7network12DownloadTaskEiiRKSs+260)
05-11 21:21:01.980: A/DEBUG(532): #04 pc 01610a80 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so

(ZNKSt7_Mem_fnIMN7cocos2d9extension15AssetsManagerExEFvRKNS0_7network12DownloadTaskEiiRKSsEEclIJS6_iiS8_EvEEvPS2_DpOT+204)
05-11 21:21:01.980: A/DEBUG(532): #05 pc 0160fb58 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so

(_ZNSt5_BindIFSt7_Mem_fnIMN7cocos2d9extension15AssetsManagerExEFvRKNS1_7network12DownloadTaskEiiRKSsEEPS3_St12_PlaceholderILi1EESE_ILi2EESE_ILi3EESE_ILi4EEEE6__callIvJS7_OiSM_S9_EJLj0ELj1ELj2ELj3ELj4

EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE+300)
05-11 21:21:01.980: A/DEBUG(532): #06 pc 0160e234 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so

(ZNSt5_BindIFSt7_Mem_fnIMN7cocos2d9extension15AssetsManagerExEFvRKNS1_7network12DownloadTaskEiiRKSsEEPS3_St12_PlaceholderILi1EESE_ILi2EESE_ILi3EESE_ILi4EEEEclIJS7_iiS9_EvEET0_DpOT+152)
05-11 21:21:01.980: A/DEBUG(532): #07 pc 0160cc28 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so

(_ZNSt17_Function_handlerIFvRKN7cocos2d7network12DownloadTaskEiiRKSsESt5_BindIFSt7_Mem_fnIMNS0_9extension15AssetsManagerExEFvS4_iiS6_EEPSB_St12_PlaceholderILi1EESG_ILi2EESG_ILi3EESG_ILi4EEEEE9_M_invo

keERKSt9_Any_dataS4_iiS6_+116)
05-11 21:21:01.980: A/DEBUG(532): #08 pc 0154bb70 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so (ZNKSt8functionIFvRKN7cocos2d7network12DownloadTaskEiiRKSsEEclES4_iiS6+152)
05-11 21:21:01.981: A/DEBUG(532): #09 pc 0154af08 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so
05-11 21:21:01.981: A/DEBUG(532): #10 pc 0154cad0 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so
05-11 21:21:01.981: A/DEBUG(532): #11 pc 0154f028 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so

(ZNKSt8functionIFvRKN7cocos2d7network12DownloadTaskEiiRKSsRSt6vectorIhSaIhEEEEclES4_iiS6_SA+168)
05-11 21:21:01.981: A/DEBUG(532): #12 pc 0154e4ec /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so (_ZN7cocos2d7network17DownloaderAndroid9_onFinishEiiPKcRSt6vectorIhSaIhEE+352)
05-11 21:21:01.981: A/DEBUG(532): #13 pc 0154e7a8 /data/app/org.cocos2d.cname-1/lib/arm/libcocos2djs.so
05-11 21:21:01.981: A/DEBUG(532): #14 pc 00269517 /data/app/org.cocos2d.cname-1/oat/arm/base.odex (offset 0x19f000) (void org.cocos2dx.lib.Cocos2dxDownloader.nativeOnFinish(int, int, int,

java.lang.String, byte[])+154)
05-11 21:21:01.982: A/DEBUG(532): #15 pc 002672e9 /data/app/org.cocos2d.cname-1/oat/arm/base.odex (offset 0x19f000) (void org.cocos2dx.lib.Cocos2dxDownloader$2.run()+196)
05-11 21:21:01.982: A/DEBUG(532): #16 pc 748191f5 /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x2449000)
05-11 21:21:02.035: W/Settings(11292): Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
`



手写了一个,要的话自己去扣,http://forum.cocos.com/t/cocos3-15/46211

从日志里面看,是某个文件加载失败,导致进入 AssetsManager::fileError,然后进入 AssetsManager::queueDownload 并崩溃。

从你的代码截图看,Error updating 状态的时候,直接就设置 fail 了,fail 的情况下,直接就重启了,但是此时下载器并没有被正常关闭哦,所以可能是这种情况下崩溃的。

应该在 UPDATE_FAILED 状态下设置 fail,并重启,才是安全的

谢谢大哥,我看看哈

@panda 请问, 我该如何手动中止当前的下载呢? 文件较多, 他会一个个的去下载,失败一个就下另一个.

目前暂时还没办法,我会想办法添加这个功能

@panda那好吧谢谢 大哥