开发者社区> 问答> 正文

为什么应用研发平台EMAS推送SDK在初始化时报错?

为什么应用研发平台EMAS推送SDK在初始化时报错?

展开
收起
青城山下庄文杰 2023-08-07 19:39:50 65 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    AppID未正确配置
    EMAS分配的AppID没有正确地写入App代码中,导致Push SDK无法正常初始化。

    证书出错
    App证书配置错误,证书已过期或不存在等情况,导致Push SDK验证不通过。

    网络故障
    App网络链接EMAS服务器失败,导致Push SDK无法完成初始化流程。

    权限缺失
    Android应用缺少必要的SDK权限,如读取应用状态和防止休眠等。

    渠道打包错误
    如果有多渠道打包,可能某个渠道的证书配置错误。

    编码问题
    Push SDK封装代码存在问题,错误地调用了SDK的初始化接口。

    SDK版本不兼容
    SDK版本与EMAS服务器不匹配,导致初始化失败。

    EMAS服务器问题
    EMAS服务器自身存在 bug 或维护,导致Push SDK连接失败。

    上述原因仅举几例,还可能有其他原因导致初始化失败。

    建议您提供更多信息:

    完整的报错日志
    初始化的代码
    确认AppID是否正确
    证书是否正确配置
    网络状况

    2023-08-09 20:14:48
    赞同 展开评论 打赏
  • 请问具体的报错信息是什么?

    若推送SDK在初始化时报”java.lang.UnsatisfiedLinkError”或”TNET-JNI-LOAD-SO-FAIL“错误。

    是由于so包没有被成功加载导致的。请通过以下方法确认so包是被被正常添加:
    将生成的.apk文件以.zip文件解压,查看对应的jniLibs是否正确包含armeabi、armeabi-v7a、x86体系架构的目录,检查是否有移动推送的libcocklogic.so和libtnet.so

    解决方案:
    1、通过远程同步的方式集成推送SDK。推送SDK在V3.0.0及以上版本开始支持远程同步集成,在远程同步的过程中so包也被自动同步。推送SDK当前提供:armeabi,armeabi-v7a,arm64-v8a,mips,mips-64,x86,x86_64等架构的so包,如果您不需要这么多,可以在build.gradle文件中进行配置,选择需要的so包:

    android {
     ......
     defaultConfig {
         applicationId "com.xxx.xxx" 
         ......
         ndk {
             //选择要添加的对应cpu类型的.so库。 
             abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' 
             // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
         }
         ......
     }
     ......
    }
    

    2、手动添加so包,将所需架构的so包放到指定路径默认为”src/main/jniLibs/‘’,若设置其他路径如libs,需要手动在build.gradle文件中指定:

    android {
     compileSdkVersion 23
     buildToolsVersion "23.0.1"
     sourceSets {
         main {
             jniLibs.srcDirs = ['libs']
         }
     }
    }
    
    2023-08-08 08:02:57
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载