android 如何解析libc:致命信号11(SIGSEGV),代码1(SEGV_MAPERR),tid 19062(GLThread 249)中的故障地址0x0,pid 15351

dpiehjr4  于 2022-11-27  发布在  Android
关注(0)|答案(2)|浏览(130)

我在尝试使用Dexguard打开HMS Map的发布模式时遇到此问题。应用程序崩溃并出现此异常:
libc:致命信号11(SIGSEGV),代码1(SEGV_MAPERR),tid 19062(GLThread 249)中的故障地址0x 0,pid 15351(nza.ambitwizhmb)2022-01-25 23:44:02.463 19184-19184/?A/调试:*********************************************************************************************************************建立指模:“华为/JNY-LX 1/HWJNY:10/华为JNY-L21/10.1.0.386C185:用户/释放键”2022-01-25 23:44:02.463 19184-19184/?A/调试:如果您在调试时遇到了问题,请使用以下代码:信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址0x 0
当我在调试模式下运行该应用程序时,它工作得非常好。当Map打开时,崩溃时间不同。有时Map显示正确,但有时在加载时崩溃。
HMS的Dexguard配置

-keep class com.huawei.agconnect.**{*;}
-dontwarn com.huawei.agconnect.**
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep interface com.huawei.hms.analytics.type.HAEventType{*;}
-keep interface com.huawei.hms.analytics.type.HAParamType{*;}
-keep class com.huawei.agconnect.** {*;}
-keepresources string/agc_*
-keepresources string/upsdk_store_url
-keepresources string/hms_update_title
-keepresourcefiles assets/hmsrootcas.bks
-keepresourcefiles assets/grs_*
scyqe7ek

scyqe7ek1#

我不确定你和我是否在同一页上,但我得到了类似的问题

致命信号11(SIGSEGV),代码1(SEGV_MAPERR),tid 5700(渲染线程)中的故障地址0x 20,pid 5609(com.xxpackagenamexx)

然后,当它发生时,我在我的代码/屏幕上转了一圈,即React-Native代码

<WebView
        onLoadStart={() => setLoading(true)}
        onLoadEnd={() => setLoading(false)}
        onLoadProgress={() => setLoading(true)}  //This particular line was generating issue
        originWhitelist={['*']}
        injectedJavaScript="window.ReactNativeWebView.postMessage(document.body.scrollHeight)"
        source={{uri: 'http://example.com/pd-terms-of-use.html'}}></WebView>

我所做的一切都是删除onLoadProgress,我还发现当我按下执行导航的后退按钮时发生了同样的问题。在调用onLoadEnd之前,goBack(null)会遇到致命的信号问题...所以
我所做的只是

onPress={() => {
          if (loading == false) {
            navigation.goBack(null);
          }
        }}

只是试图避免/忽略生成代码的问题...希望它有帮助:-p

xqnpmsa8

xqnpmsa82#

建议您通过参考this docs来配置混淆。
1.在项目的应用根目录中打开模糊处理配置文件proguard-rules.pro,然后添加配置以将HMS Core SDK排除在模糊处理之外。

-ignorewarnings 
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature 
-keepattributes SourceFile,LineNumberTable 
-keep class com.huawei.hianalytics.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;}

1.如果您使用的是AndResGuard,请将其信任列表添加到项目的应用级build.gradle文件中。

"R.string.agc*",
"R.string.hms*", 
"R.string.connect_server_fail_prompt_toast", 
"R.string.getting_message_fail_prompt_toast", 
"R.string.no_available_network_prompt_toast", 
"R.string.third_app_*", 
"R.string.upsdk_*", 
"R.layout.hms*", 
"R.layout.upsdk_*", 
"R.drawable.upsdk*", 
"R.color.upsdk*", 
"R.dimen.upsdk*", 
"R.style.upsdk*"
  1. (可选)如果已启用R8资源收缩,请按如下所示配置keep.xml文件以保留布局资源(在项目级build.gradle文件中,shrinkResources设置为true)和严格的引用检查(在res/raw/keep.xml文件中shrinkMode被设置为strict)不保留布局资源会导致应用在发布到华为AppGallery时被拒绝。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@layout/hms_download_progress,@drawable/screen_off,@layout/upsdk*"
    tools:shrinkMode="strict" />

相关问题