tencent cloud

文档反馈

Android 常见问题

最后更新时间:2024-11-07 18:06:17

    小程序启动失败排查

    小程序启动失败,可能有如下几种原因:
    原因一:配置文件路径错误,configAssetName 设置的是 assets 目录下文件的完整路径,如果配置文件在子目录下需要追加目录路径,例如:server/tcmpp-android-configurations.json。
    原因二:不允许修改小程序配置文件内容,否则小程序无法正常运行。
    原因三:配置文件中的 packageName 必须与应用的 applicationId 保持一致,否则 App 运行失败,因为初始化时会校验配置文件中的 packageName,可以通过如下设置不进行包名校验。
    MiniInitConfig config = builder
    .verifyPkg(false)//忽略包名校验
    .build();
    
    
    原因四:确定上面初始化注解 @ProxyService 是否生成了如下类 ExtProxyServiceScope:
    
    
    

    SDK 如何确保隐私合规?

    小程序 SDK 的初始化是在开发者调用 TmfMiniSDK 类的方法时调用的,所以在用户同意隐私合规授权之后,再调用 TmfMiniSDK 类中提供的方法即可。

    自定义小程序 API 出现错误,怎么排查?

    在编译路径中,检查是否生成 XxxJsPluginScope,如下图:
    
    检查客户端定义的事件与小程序调用方法名是否一致,自定义小程序API的事件名称区分大小写

    小程序域名和隐私 API 校验逻辑

    小程序使用过程中会校验接口请求域名的合法性,以及如果在管理后台设置了隐私 API 也会进行授权校验,但在如下场景下不进行校验:
    运行小程序是非正式版本且小程序开启了小程序调试

    模块化工程支持

    当开发者在模块化工程中多个模块同时使用了注解 @JsPlugin 或 @ProxyService 时,Make Project 工程时会出现如下错误:
    
    需要按照如下配置支持多模块化工程:
    1. 在每个使用了 @JsPlugin 或 @ProxyService 注解的 module 的 build.gradle 中添加如下代码:
    android {
    defaultConfig {
    javaCompileOptions {
    annotationProcessorOptions {
    //配置模块名:开发者自己定义唯一名称,模块名遵循android类名定义规范
    arguments = [tcmppModuleName: "Demo"]
    }
    }
    }
    }
    2. 初始化代码中注册模块:
    @ProxyService(proxy = MiniConfigProxy.class)
    public class MiniConfigProxyImpl extends MiniConfigProxy {
    @Override
    public MiniInitConfig buildConfig() {
    MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
    
    //将上面定义的所有module都进行注册,registerModule参数值与上面tcmppModuleName定义的保持一致
    return builder
    

    如何查看 SDK 日志输出?

    1. 开发者可以在开发工具上,通过关键字 TMF_MINI 过滤得到 SDK 日志。
    
    
    
    2. 查看小程序 JS 错误日志。
    方式一:开发者可以通过关键字 MINI_JS_LOG 过滤得到JS日志。
    
    方式二:chrome 调试小程序的 JS 是否有错误。
    

    如何打开小程序的调试模式?

    为了方便小程序调试查看 log 日志,客户端需要开启小程序调试入口,参考小程序宿主自定义-"自定义胶囊"getMoreItems 实现。
    /**
    * 返回胶囊更多面板的按钮,扩展按钮的ID需要设置为[100, 200]这个区间中的值,否则,添加无效
    * 注:此方法在小程序进程调用
    * @param builder
    * @return
    */
    public ArrayList<MoreItem> getMoreItems(MoreItemList.Builder builder){
    builder.addDebug("调试", icon)//设置控制面板调试按钮
    return builder.build();
    }
    设置后小程序控制面板会出现调试按钮,单击开启调试模式后,重启小程序进入调试模式。
    

    小程序 SDK 会主动清理小程序包缓存吗?

    不会,需要开发者自行调用小程序 SDK 提供的小程序删除方法进行清理(删除小程序);如果未主动清理,宿主应用的缓存会随着使用小程序数量的增大而增大。

    为什么开启R8 full mode之后无法正常使用小程序?

    R8 full mode混淆由于使用了更为严格的混淆规则,会导致老版本小程序SDK部分注解丢失,因而可能无法正常启动小程序。Android Gradle Plugin 自8.0版本起会在编译时强制开启R8 full mode。请将小程序SDK mini_core升级到2.0.5版本以上以兼容R8 full mode。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持