[英]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中),也許你可以隔離代碼和問題。 我們可以將調用替換為我們可以控制的東西,即string
到lower case
函數。 你也應該bullet-proof
的string
傳遞給這個函數(是null
?)。
為什么它在本地庫中崩潰,我正在使用Java?
所有以Java代碼開頭的代碼都轉換為一段本機編譯代碼。 從技術上講,classes.dex將轉換為ELF共享對象。 Android調用此庫格式OAT,轉換classes.dex文件的工具稱為dex2oat。 請參閱此如何在Android運行時(ART)上構建和運行應用程序 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.