Cocos2d-x编译APK报错求助:transformClassesWithDexBuilderForDebug任务执行失败
解决Cocos2d-x安卓编译DexArchiveBuilderException问题
作为过来人,太懂这种被编译报错卡几天的痛苦了!针对你遇到的transformClassesWithDexBuilderForDebug执行失败、无法处理builder-3.1.0-alpha08.jar的问题,给你几个针对性的解决思路,按顺序试试:
1. 先清理项目缓存(最容易忽略但见效快)
很多时候这类奇怪的编译错误都是缓存残留导致的,先执行这两步:
- 打开终端,进入项目根目录,运行命令:
./gradlew clean ./gradlew assembleDebug - 或者用Android Studio的可视化操作:点击顶部菜单栏的
Build->Clean Project,等清理完成后再点Rebuild Project。
2. 升级Android Gradle插件和Gradle版本(核心问题大概率在这)
你用到的builder-3.1.0-alpha08.jar是非常早期的Android构建工具版本,和现在大部分环境的Gradle版本不兼容,这是报错的核心原因:
- 打开项目根目录下的
build.gradle文件,找到dependencies里的classpath 'com.android.tools.build:gradle:xxx',把版本换成稳定版,比如7.0.4(这个版本兼容性不错):dependencies { classpath 'com.android.tools.build:gradle:7.0.4' // 其他依赖... } - 然后打开
gradle/wrapper/gradle-wrapper.properties,把distributionUrl改成对应版本的Gradle,比如:
(注意:Gradle版本和插件版本要对应,比如插件7.0.x对应Gradle 7.0-7.3之间的版本)distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
3. 检查并替换/移除冲突的本地Jar
如果项目里手动引入了builder-3.1.0-alpha08.jar,建议直接移除它,因为现在Android构建工具都是通过Gradle依赖自动引入的,本地Jar很容易导致版本冲突:
- 找到
/home/phoenix/ASP/FlappyBird/cocos2d/cocos/platform/android/java/libs/下的builder-3.1.0-alpha08.jar,删除这个文件。 - 然后在对应的模块build.gradle里,确保是通过Gradle依赖引入构建工具,而不是本地Jar。
4. 开启MultiDex(针对方法数超限的情况)
如果你的项目方法数超过了Android单Dex的65536上限,也会触发这类Dex编译错误,可以试试开启MultiDex:
- 在app模块的
build.gradle里添加配置:android { defaultConfig { // 其他配置... multiDexEnabled true } } dependencies { // 其他依赖... implementation 'com.android.support:multidex:1.0.3' } - 如果你的项目有自定义Application类,让它继承
MultiDexApplication;如果没有,就在AndroidManifest.xml的<application>标签里指定android:name="android.support.multidex.MultiDexApplication"。
5. 检查本地Jar是否损坏
如果上面的方法都没用,可能是那个builder-3.1.0-alpha08.jar本身损坏了:
- 删除这个Jar文件,然后重新从Cocos2d-x的官方安装包中复制对应的文件到libs目录,或者直接通过Gradle依赖引入对应版本的构建工具。
按这个顺序试下来,应该能解决问题!如果还有疑问,可以把你的项目根目录build.gradle和app模块build.gradle的内容贴出来,方便进一步排查。
内容的提问来源于stack exchange,提问作者nguyen nam
相关产品推荐
相关产品推荐

