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

使用BeeWare开发Android应用遇DexBuilder空指针编译异常求助

解决BeeWare Android应用编译时transformClassesWithDexBuilderForDebug失败的问题

针对你遇到的com.android.builder.dexing.DexArchiveBuilderException(根源是java.lang.NullPointerException)且指向desugar处理文件的问题,结合你的配置和场景,我整理了几个针对性的解决方案:

1. 调整Java版本兼容性,暂时绕过Desugar处理

你的build.gradle中配置了Java 8的编译选项,但AGP 3.1.1对Java 8 Desugar的支持存在一些已知的稳定性问题,而BeeWare默认模板生成的代码大概率不需要Java 8特性。可以尝试修改compileOptions:

compileOptions {
    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'
}

修改后执行./gradlew clean assembleDebug(Windows环境用gradlew.bat)重新编译,看是否能避开Desugar阶段的NPE。

2. 彻底清理构建缓存并重新执行编译任务

缓存损坏是这类奇怪构建错误的常见原因,执行以下命令完全清理后重新构建:

# Windows环境替换为gradlew.bat
./gradlew clean
./gradlew buildPythonDebug
./gradlew assembleDebug

这一步会删除所有旧的构建产物和缓存,确保Voc编译生成的类文件是全新有效的。

3. 升级Gradle和Android Gradle Plugin版本

Gradle 4.7和AGP 3.1.1的组合虽然兼容,但存在一些已知的Desugar相关bug。建议升级到更稳定的版本组合:

  • 修改buildscript中的AGP版本:
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
    
  • 修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
    

升级后重新同步项目并编译,新版本修复了不少Dex构建和Desugar的问题。

4. 检查Voc编译的输出是否正常

手动执行buildPythonDebug中的Voc命令,确认编译过程没有静默错误:

voc -v -p app -o build/intermediates/classes/debug app
voc -v -p app_packages -o build/intermediates/classes/debug app_packages

如果Voc编译过程中出现错误(比如生成了损坏的class文件),会导致后续Desugar和Dex构建失败,此时需要确保BeeWare的Voc工具是最新稳定版,或者重新初始化BeeWare项目。

5. 禁用Core Library Desugaring(如果适用)

如果调整Java版本后仍需保留部分Java 8特性,可以尝试禁用核心库Desugaring:

android {
    compileOptions {
        coreLibraryDesugaringEnabled false
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }
}

注意:这可能会导致部分Java 8 API在低版本Android上无法使用,但BeeWare默认模板通常不会依赖这些API。


内容的提问来源于stack exchange,提问作者Saibbo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:36:32