You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cordova-plugin-buildinfo仅Android .AAB构建返回异常数据求助

解决方案

1. 修复ProGuard/R8混淆规则

Cordova Android 11默认启用R8混淆优化,Release构建时可能会移除或混淆BuildInfo相关代码,导致JS无法获取有效数据。

  • 在platforms/android/app/proguard-rules.pro中添加保留规则,根据你使用的BuildInfo插件调整包名:
    # 保留cordova-plugin-buildinfo核心类
    -keep class org.apache.cordova.buildinfo.BuildInfo { *; }
    -keep class org.apache.cordova.buildinfo.BuildInfoPlugin { *; }
    # 若使用自定义BuildInfo实现,保留对应类
    -keep class com.your.app.package.BuildInfo { *; }
    
  • 如果不确定插件包名,可临时添加通用规则测试:
    -keep class org.apache.cordova.** { *; }
    

2. 校验buildConfig.xml的Release配置

Cordova Android 11对buildConfig的解析逻辑有更新,需确保Release环境的变量配置完整:

  • 打开buildConfig.xml,检查是否存在Release节点且变量值正确:
    <platform name="android">
        <release>
            <variant>release</variant>
            <config>
                <property name="versionCode" value="XXX" />
                <property name="versionName" value="X.X.X" />
                <!-- 其他BuildInfo依赖的字段需逐一配置 -->
            </config>
        </release>
    </platform>
    
  • 执行cordova build --release android --buildConfig --verbose查看构建日志,确认变量是否成功注入到BuildConfig中。

3. 更新或适配BuildInfo插件

第三方BuildInfo插件可能未适配Cordova Android 11,需针对性处理:

  • 卸载旧插件并安装最新兼容版本:
    cordova plugin remove cordova-plugin-buildinfo
    cordova plugin add cordova-plugin-buildinfo@latest
    
  • 若最新版本仍异常,手动修改插件Android代码:
    打开platforms/android/app/src/main/java/org/apache/cordova/buildinfo/BuildInfo.java,为核心方法和类添加@Keep注解,避免被混淆移除:
    import androidx.annotation.Keep;
    
    @Keep
    public class BuildInfo extends CordovaPlugin {
        @Override
        @Keep
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
            // 保留原有业务逻辑
        }
    }
    

4. 临时关闭混淆排查问题

若以上方案无效,可暂时关闭Release构建的混淆功能,确认是否为混淆导致:

  • 打开platforms/android/app/build.gradle,修改Release构建类型配置:
    buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 重新构建Release AAB并测试,若数据恢复正常,则聚焦于调整混淆规则。

内容的提问来源于stack exchange,提问作者Bryan Henrique Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:30:18