簡體   English   中英

應用程序在使用Android 6.0的LG手機上的libicuuc.so中的本機代碼中崩潰

[英]App crashes in native code in libicuuc.so on LG phones with Android 6.0

我的應用程序崩潰在libicuuc.so文件中。 它只發生在安裝了Android 6.0的LG手機上 我搜查了但是我沒有發現任何類似的問題。 這是來自Google Play的堆棧跟蹤:

Build fingerprint: 'lge/p1bssn_global_com/p1bssn:6.0/MRA58K/1635010184e9f:user/release-keys'
Revision: '6'
ABI: 'arm'
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xba45f000
    r0 00000000  r1 00000000  r2 0000133b  r3 becaf54c
    r4 0000133a  r5 0000133a  r6 becaf54c  r7 becaf50c
    r8 becaf80c  r9 0000a972  sl ba45c98c  fp 9b7444bc
    ip b65d3bc0  sp becaf4d0  lr b650c821  pc b650c7d2  cpsr 00000030

backtrace:
    #00 pc 000577d2  /system/lib/libicuuc.so
    #01 pc 0005804d  /system/lib/libicuuc.so
    #02 pc 0005739f  /system/lib/libicuuc.so
    #03 pc 000a33d7  /system/lib/libicuuc.so (u_strToLower_55+130)
    #04 pc 00046997  /system/lib/libsqlite.so

可能導致此錯誤的原因是什么?

可能導致此錯誤的原因是什么?

來自堆棧跟蹤/返回跟蹤的多汁位:

/system/lib/libicuuc.so
ABI: 'arm'
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xba45f000
#03 pc 000a33d7  /system/lib/libicuuc.so (u_strToLower_55+130)

International Components for Unicode(ICU)是一個開源項目,包含成熟的C / C ++和Java庫,用於Unicode支持,軟件國際化和軟件全球化。 ICU可廣泛移植到許多操作系統和環境中。 它為應用程序在所有平台上以及C,C ++和Java軟件之間提供相同的結果。 ICU項目由IBM和許多其他公司贊助,支持和使用。 Unicode的國際組件

它在函數u_strToLower (SIGSEGV,分段錯誤,試圖讀取或寫入非法內存位置)中崩潰,因此在代碼中搜索"ToLower"方法(在java中),也許你可以隔離代碼和問題。 我們可以將調用替換為我們可以控制的東西,即stringlower case函數。 你也應該bullet-proofstring傳遞給這個函數(是null ?)。

為什么它在本地庫中崩潰,我正在使用Java?

所有以Java代碼開頭的代碼都轉換為一段本機編譯代碼。 從技術上講,classes.dex將轉換為ELF共享對象。 Android調用此庫格式OAT,轉換classes.dex文件的工具稱為dex2oat。 請參閱此如何在Android運行時(ART)上構建和運行應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM