uni-app android 云打包 AAB 自定义基座 异常

发布于 1周前 作者 eggper 来自 Uni-App

uni-app android 云打包 AAB 自定义基座 异常

操作步骤:

  • 正常运行

预期结果:

  • 正常运行

实际结果:

  • 正常运行

bug描述:

云打包基座成功后返回的信息
[HBuilder] 11:32:17.879 项目 xxxxx [xxxxxxxx]打自定义调试基座包成功: 路径为: xxxx/unpackage/debug/android_debug.apk 选择菜单“运行->运行到手机或模拟器->运行基座选择->自定义调试基座”后再次运行项目,即可通过自定义调试基座查看日志 注:自定义调试基座不可用于正式发布,其脱离HBuilderX无法更新应用资源

运行到android真机
选自定义基座没显示基座路径

运行之后返回的信息:
11:40:54.003 读取自定义基座AndroidManifest.xml文件失败
11:40:54.003 当前自定义基座包不支持新版本真机运行,请重新生成自定义基座包再调试运行。1.如果是uni-app CLI项目,请升级CLI编译器 请参考:https://uniapp.dcloud.net.cn/quickstart-cli.html 后重新制作自定义基座; 2.如果是Android Studio制作的自定义基座,请下载最新的离线SDK,请参考:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android?id=debug 重新制作自定义基座。


5 回复

aab是google的上架发行release包,自定义基座应该用apk


之前一直是这么打包自定义基座的,因为要用fmc推送, 如果不用aab,自定义基座能正常进行fmc推送的测试吗?

我之前都可以用aab自定义基座包测试 fmc 后面加了原生插件后 就不行了 就提示这个 “读取自定义基座AndroidManifest.xml文件失败 当前自定义基座包不支持新版本真机运行,请重新生成自定义基座包再调试运行。”

现在好像用普通apk打包基座好像就可以…

在处理uni-app进行Android云打包生成AAB(Android App Bundle)并使用自定义基座时遇到异常的情况,首先需要确保几个关键步骤和配置正确无误。下面是一些常见的代码配置示例和检查点,这些通常可以帮助定位和解决问题。

1. 确保manifest.json配置正确

manifest.json中,确保你的应用配置符合AAB打包的要求,特别是app-plus下的配置:

"app-plus": {
    "distribute": {
        "android": {
            "package": "com.example.myapp",
            "name": "MyApp",
            "version": {
                "name": "1.0.0",
                "code": "100"
            },
            "sdkConfigs": [],
            "compileOptions": {
                "aab": true // 确保设置为true以生成AAB
            },
            "signingConfig": {
                "storePath": "/path/to/your/keystore.jks",
                "storePassword": "yourStorePassword",
                "keyAlias": "yourKeyAlias",
                "keyPassword": "yourKeyPassword"
            }
        }
    }
}

2. 自定义基座配置

如果你使用自定义基座,确保基座本身已经正确配置,并且与你的应用代码兼容。自定义基座通常涉及修改HBuilderX的配置文件,例如通过命令行参数指定基座版本。

3. 检查打包日志

详细检查云打包生成的日志文件,通常可以在HBuilderX的控制台输出或云打包服务的管理界面中找到。日志中可能包含具体的错误信息或警告,这些信息对于定位问题至关重要。

4. 示例代码检查

确保你的应用代码中没有使用不兼容AAB的特性。例如,某些硬编码的路径或资源访问方式可能在AAB中表现不同。以下是一个简单的示例,展示如何在uni-app中安全地访问资源:

// 使用uni.getFileSystemManager()安全访问本地资源
const fs = uni.getFileSystemManager();
const filePath = `${uni.env.USER_DATA_PATH}/example.txt`;

fs.writeFile({
    filePath: filePath,
    data: 'Hello, AAB!',
    encoding: 'utf8',
    success: function() {
        console.log('File written successfully');
    },
    fail: function(err) {
        console.error('File write failed:', err);
    }
});

5. 更新依赖和工具

确保你的HBuilderX、uni-app SDK以及其他相关依赖都是最新版本,因为新版本中可能已经修复了一些已知问题。

通过上述步骤,你应该能够定位并解决在uni-app Android云打包AAB时使用自定义基座遇到的异常问题。如果问题依然存在,建议详细记录异常信息并寻求官方或社区的帮助。

回到顶部