小程序启动失败排查
小程序启动失败,可能有如下几种原因:
原因一:配置文件路径错误,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 {
arguments = [tcmppModuleName: "Demo"]
}
}
}
}
2. 初始化代码中注册模块:
@ProxyService(proxy = MiniConfigProxy.class)
public class MiniConfigProxyImpl extends MiniConfigProxy {
@Override
public MiniInitConfig buildConfig() {
MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
return builder
如何查看 SDK 日志输出?
1. 开发者可以在开发工具上,通过关键字 TMF_MINI 过滤得到 SDK 日志。
2. 查看小程序 JS 错误日志。
方式一:开发者可以通过关键字 MINI_JS_LOG 过滤得到JS日志。
方式二:chrome 调试小程序的 JS 是否有错误。
如何打开小程序的调试模式?
为了方便小程序调试查看 log 日志,客户端需要开启小程序调试入口,参考小程序宿主自定义-"自定义胶囊"getMoreItems 实现。
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。
本页内容是否解决了您的问题?