libgdx的android工程打包出错处理一则

简介:

 这个问题我印象中遇到3次了,都是稍微动了一下工程配置或者升级了一下什么东西就容易出现。由于出现没啥征兆,导致每次解决也浪费好多时间,特别记录一下,下次能快点处理掉。

报错日志如下:

 
  1. [2013-03-07 10:09:51 - pirateage-android] Proguard returned with error code 1. See console 
  2. [2013-03-07 10:09:51 - pirateage-android] Note: there were 2626 duplicate class definitions. 
  3. [2013-03-07 10:09:51 - pirateage-android]       You should check if you need to specify additional program jars. 
  4. [2013-03-07 10:09:51 - pirateage-android] Unexpected error while computing stack sizes: 
  5. [2013-03-07 10:09:51 - pirateage-android]   Class       = [com/badlogic/gdx/graphics/glutils/ShaderProgram] 
  6. [2013-03-07 10:09:51 - pirateage-android]   Method      = [loadShader(ILjava/lang/String;)I] 
  7. [2013-03-07 10:09:51 - pirateage-android]   Exception   = [java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [105] putfield #88 in [com/badlogic/gdx/graphics/glutils/ShaderProgram.loadShader(ILjava/lang/String;)I]) 
  8. [2013-03-07 10:09:51 - pirateage-android] java.lang.IllegalArgumentException: Stack size becomes negative after instruction [105] putfield #88 in [com/badlogic/gdx/graphics/glutils/ShaderProgram.loadShader(ILjava/lang/String;)I] 
  9. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.visitor.StackSizeComputer.evaluateInstructionBlock(StackSizeComputer.java:334) 
  10. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.visitor.StackSizeComputer.visitBranchInstruction(StackSizeComputer.java:197) 
  11. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.instruction.BranchInstruction.accept(BranchInstruction.java:140) 
  12. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.visitor.StackSizeComputer.evaluateInstructionBlock(StackSizeComputer.java:355) 
  13. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.visitor.StackSizeComputer.visitCodeAttribute0(StackSizeComputer.java:153) 
  14. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.visitor.StackSizeComputer.visitCodeAttribute(StackSizeComputer.java:110) 
  15. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.editor.StackSizeUpdater.visitCodeAttribute(StackSizeUpdater.java:49) 
  16. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.editor.MemberReferenceFixer.visitCodeAttribute(MemberReferenceFixer.java:322) 
  17. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101) 
  18. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79) 
  19. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.editor.MemberReferenceFixer.visitProgramMember(MemberReferenceFixer.java:285) 
  20. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91) 
  21. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71) 
  22. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504) 
  23. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.editor.MemberReferenceFixer.visitProgramClass(MemberReferenceFixer.java:82) 
  24. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 
  25. [2013-03-07 10:09:51 - pirateage-android]   at proguard.classfile.ClassPool.classesAccept(ClassPool.java:116) 
  26. [2013-03-07 10:09:51 - pirateage-android]   at proguard.optimize.Optimizer.execute(Optimizer.java:457) 
  27. [2013-03-07 10:09:51 - pirateage-android]   at proguard.ProGuard.optimize(ProGuard.java:306) 
  28. [2013-03-07 10:09:51 - pirateage-android]   at proguard.ProGuard.execute(ProGuard.java:115) 
  29. [2013-03-07 10:09:51 - pirateage-android]   at proguard.ProGuard.main(ProGuard.java:492) 

    反复比较libgdx给的示例工程和自己工程的区别,发现自己工程不知道为什么多出来一个android dependencies的lib库合集,里面包含了android-4.2.jar,这个就和我给工程默认添加的android 2.2类库android.jar是有重复的。后来查证出现重复类库打包就容易出现“Conversion to Dalvik format failed with error 1”的报错。

    最后删掉这个类库合集,重新打包就对了。但是有个地方比较奇怪,就是export的里面不能带有gdx-crontrollers和gdx-crontrollers-android的工程,否则会有一些super class找不到的问题,可能这个地方用到了比android 2.2类库更高级类库里面的东西,但是不带上这两个包也没看出来有任何的差异,这个没深入研究。至此总算顺利打包。


本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/1149061,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
189 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
10月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
288 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
11月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
336 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
237 1
|
12月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
1133 11
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
1419 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
1491 0
|
开发工具 Android开发
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
1319 0
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
157 0
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
185 0

热门文章

最新文章