【问题标题】:Randomly getting D/OpenGLRenderer﹕ Flushing caches (mode 0) in lollipop随机获取 D/OpenGLRenderer:棒棒糖中的刷新缓存(模式 0)
【发布时间】:2015-09-04 19:28:53
【问题描述】:

我面临这个问题,我们的应用程序在结帐过程中随机崩溃,这种崩溃仅发生在棒棒糖上,其他版本运行正常。日志猫中除了 Fatal Signal 之外没有任何信息。这个问题也不能在模拟器上重现,它只发生在运行棒棒糖的设备上。

我重构了网络调用,现在我得到了 OpenGL 渲染器:刷新缓存问题。这发生在发出一些截击请求之后。

    06-22 18:48:29.876  24145-24216/com.pangea.android.debug D/OpenGLRenderer﹕ Flushing caches (mode 0)
    06-22 18:48:29.877  24145-24157/com.pangea.android.debug A/libc﹕ Fatal signal 11 (SIGSEGV), code 2, fault addr 0x12c7c000 in tid 24157 (FinalizerDaemon)

对于网络堆栈,我使用 Volley 和 OkHttp

Volley 请求是简单的 get 请求。

对于如何获取有关崩溃的更多信息有什么建议吗?

这里是创建连接的示例代码:

    protected HttpURLConnection createConnection(URL url) throws IOException {
        HttpURLConnection connection = new OkUrlFactory(mClient).open(url);
        return connection;
    }

    private HttpURLConnection openConnection(URL url, Request<?> request)    throws IOException {
    HttpURLConnection connection = createConnection(url);

    int timeoutMs = request.getTimeoutMs();
    connection.setConnectTimeout(timeoutMs);
    connection.setReadTimeout(timeoutMs);
    connection.setUseCaches(false);
    connection.setDoInput(true);

    // use caller-provided custom SslSocketFactory, if any, for HTTPS
    if ("https".equals(url.getProtocol()) && mSslSocketFactory != null) {
        ((HttpsURLConnection) connection).setSSLSocketFactory(mSslSocketFactory);
    }

    return connection;
}

这里是日志:

    06-18 18:08:39.427      915-915/? D/WIFI_ICON﹕ WifiActivity: 3
    06-18 18:08:39.427      915-915/? D/StatusBar.NetworkController﹕ dumpIcon[(gone) stat_sys_5signal_5|null stat_sys_wifi_signal_inandout_4 (gone) F]
    06-18 18:08:39.627    1006-1016/com.pangea.android.debug W/art﹕ Suspending all threads took: 33.602ms
    06-18 18:08:39.657    1006-1021/com.pangea.android.debug I/art﹕ Background partial concurrent mark sweep GC freed 67796(3MB) AllocSpace objects, 3(150KB) LOS objects, 40% free, 12MB/21MB, paused 5.066ms total 149.122ms
    06-18 18:08:39.667    1006-1018/com.pangea.android.debug A/libc﹕ Fatal signal 11 (SIGSEGV), code 1, fault addr 0x656d616c in tid 1018 (FinalizerDaemon)
    06-18 18:08:39.667    1006-1018/com.pangea.android.debug W/libc﹕ Security Level: (1), Debug inforamtion is controlled by the DUMPABLE flag.
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ Build fingerprint: 'htc/htc_asia_tw/dlxpul:5.0.2/LRX22G/507296.103:user/release-keys'
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ Revision: '2'
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ ABI: 'arm'
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ pid: 1006, tid: 1018, name: FinalizerDaemon  >>> com.pangea.android.debug <<<
    06-18 18:08:39.667  11804-11804/? I/DEBUG﹕ signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x656d616c
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ r0 b7982668  r1 00000000  r2 00000000  r3 00000000
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ r4 b7982668  r5 656d616e  r6 12c638a0  r7 ffffffff
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ r8 70c07e38  r9 b738d940  sl 12c9a1f0  fp 12c638a0
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ ip b6ea10ec  sp b455aa78  lr b6bcf17f  pc 656d616c  cpsr 60070010
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ backtrace:
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #00 pc 656d616c  <unknown>
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #01 pc 0002017d  /system/lib/libbinder.so (android::Parcel::freeDataNoInit()+22)
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #02 pc 000201a3  /system/lib/libbinder.so (android::Parcel::~Parcel()+4)
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #03 pc 00080683  /system/lib/libandroid_runtime.so
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #04 pc 000173c9  /data/dalvik-cache/arm/system@framework@boot.oat
    06-18 18:08:40.158      915-915/? I/RemoteViews﹕ reapply : com.tmobile.pr.mytmobile 1 15
    06-18 18:08:40.428      653-653/? E/WifiTrafficPoller﹕ TRAFFIC_STATS_POLL true Token 244 num clients 13
    06-18 18:08:40.428      653-653/? E/WifiTrafficPoller﹕ packet count Tx=111024 Rx=151852
    06-18 18:08:40.468    3087-3187/? W/SQLiteCursor﹕ Close cursor android.database.sqlite.SQLiteCursor@19398b3 on null twice or more
    06-18 18:08:40.468    3087-3187/? W/SQLiteCursor﹕ Close cursor android.database.sqlite.SQLiteCursor@31d0be70 on null twice or more
    06-18 18:08:40.758      271-828/? E/QC-NETMGR-LIB﹕ Received nl msg, recvmsg returned 64
    06-18 18:08:40.758      271-828/? E/QC-NETMGR-LIB﹕ Received command: ID=NETMGR_KIF_MSG_CMD, link=8
    06-18 18:08:40.758      271-828/? E/QC-NETMGR-LIB﹕ Received nl msg, recvmsg returned 64
    06-18 18:08:40.758      271-828/? E/QC-NETMGR-LIB﹕ Received command: ID=NETMGR_KIF_MSG_CMD, link=8
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Process command: ID=NETMGR_KIF_MSG_CMD, link=8, state=1
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Processing RTM_NEWADDR
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Metainfo:  Family=10 PrefixLen=64 Scope=0x0 Index=13 Flags=[0x0]
    06-18 18:08:40.758      271-679/? I/QC-NETMGR-LIB﹕ Attribute: PrefixIPv6 addr [2601:0240:d100:9900:867a:88ff:fe77:631c]
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Attribute: Address Cache Info - prefered=7200 valid=7200 cstamp=0x3924d8 tstamp=0x50cfc1
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Rcvd Netlink msg type [20]
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ unrecognized ifindex 13
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Process command: ID=NETMGR_KIF_MSG_CMD, link=8, state=1
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Processing RTM_NEWADDR
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Metainfo:  Family=10 PrefixLen=64 Scope=0x0 Index=13 Flags=[0x1]TEMPORARY
    06-18 18:08:40.758      271-679/? I/QC-NETMGR-LIB﹕ Attribute: PrefixIPv6 addr [2601:0240:d100:9900:fdad:b042:7f6c:e7cc]
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Attribute: Address Cache Info - prefered=7200 valid=7200 cstamp=0x3924d8 tstamp=0x50cfc1
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ Rcvd Netlink msg type [20]
    06-18 18:08:40.758      271-679/? E/QC-NETMGR-LIB﹕ unrecognized ifindex 13
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet+,hn 38(0x323630313a3234),sn(),hints(known),family 0,flags 4
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet-, SUCCESS
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet+,hn 38(0x323630313a3234),sn(),hints(known),family 0,flags 4
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet-, SUCCESS
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet+,hn 16(0x323030313a3535),sn(),hints(known),family 0,flags 4
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet-, SUCCESS
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet+,hn 16(0x323030313a3535),sn(),hints(known),family 0,flags 4
    06-18 18:08:40.758      653-723/? D/libc﹕ [NET] android_getaddrinfofornet-, SUCCESS
    06-18 18:08:40.828     653-3231/? E/ActivityManager﹕ App crashed! Process: com.pangea.android.debug
    06-18 18:08:40.828      653-722/? I/BootReceiver﹕ Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
    06-18 18:08:40.828     653-2659/? E/SharedPreferencesImpl﹕ Couldn't create directory for SharedPreferences file shared_prefs/log_files.xml
    06-18 18:08:40.828     653-3231/? W/ActivityManager﹕ Force finishing activity com.pangea.android.debug/com.pangea.android.ui.activities.MainActivity
    06-18 18:08:40.878     653-3231/? D/PMS﹕ acquireWL(382218fc): PARTIAL_WAKE_LOCK  ActivityManager-Launch 0x1 653 1000 null
    06-18 18:08:40.898     653-1400/? I/ActivityManager﹕ Recipient 1006
    06-18 18:08:40.898     653-1098/? I/WindowState﹕ WIN DEATH: Window{1b796396 u0 com.pangea.android.debug/com.pangea.android.ui.activities.MainActivity}
    06-18 18:08:40.908      653-724/? D/StatusBarManagerService﹕ setSystemUiVisibility(0x0)

【问题讨论】:

  • 你有一些代码可以给我们看吗?很难猜出你在做什么以及堆栈在哪里。我的第一个猜测是生命周期问题,但这只是猜测。
  • Kalem,我从 HttpStack 添加了一些代码。关于如何进一步缩小问题范围的任何建议。谢谢。
  • 如果你把所有的东西都放在一个 AsyncTask 里面就好了

标签: android memory-leaks android-5.0-lollipop android-volley okhttp


【解决方案1】:

似乎系统无法实例化Parcel 引用,当它来自/在后台或在您的情况下是片段状态时。

Trace 说它在创建新实例之前未能释放内存。

  06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #00 pc 656d616c  <unknown>
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #01 pc 0002017d  /system/lib/libbinder.so (android::Parcel::freeDataNoInit()+22)
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #02 pc 000201a3  /system/lib/libbinder.so (android::Parcel::~Parcel()+4)
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #03 pc 00080683  /system/lib/libandroid_runtime.so
    06-18 18:08:39.687  11804-11804/? I/DEBUG﹕ #04 pc 000173c9  /data/dalvik-cache/arm/system@framework@boot.oat

检查行293和函数freeDataNoInit()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2014-12-15
    相关资源
    最近更新 更多