博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apk打包和反编译三、有关 Conversion to Dalvik format failed with error 1
阅读量:7156 次
发布时间:2019-06-29

本文共 1851 字,大约阅读时间需要 6 分钟。

原文:http://hsx9566.iteye.com/blog/1142002

最近发现在家的本本,在项目加入混淆之后,导出都会提示

Java代码  
  1. Conversion to Dalvik format failed with error 1  



从网上看到的都是转来转去的解决方法:

Java代码  
  1. android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:  
  2. 1。 如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。  
  3.        (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)  
  4. 2。 如果修改android sdk版本,则需要以下几个步骤:  
  5.        1)修改SDK  
  6.              选择工程,build path --> configure build path ---> library 删除引用的低版本SDK,  
  7.              然后add External JARs,选择高版本SDK,OK,保存  
  8.         2)修改classpath文件   
  9.              该文件可能存在该项:   
  10.         3) 修改AndroidManifest.xml  
  11.              在AndroidManifest.xml文件中,application标签后添加  
  12.         4) 修改default.properties(很重要)  
  13.               该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。  
  14.         再看看你的工程和新建的android 2.2的工程结构就一样了。  




这个就解决不了我这问题。

接着我重新下载eclipse,并新建一个项目,发现也一样导出不了。
最终在一篇文章中让我解决了这问题,这是android-sdk_r12 的问题,如下:

Java代码  
  1. http://stackoverflow.com/questions/6605971/android-sdk-tools-revision-12-has-problem-with-proguard-error-conversion-to-d  





我采用的解决方法是:

Java代码  
  1. http://code.google.com/p/android/issues/detail?id=18359  





android-sdk-windows\tools\proguard\bin目录找到:

Java代码  
  1. proguard.bat  




用记事本打开,内容如下:


Java代码  
  1. ECHO OFF  
  2.   
  3. REM Start-up script for ProGuard -- free class file shrinker, optimizer,  
  4. REM obfuscator, and preverifier for Java bytecode.  
  5.   
  6. rem Change current directory and drive to where the script is, to avoid  
  7. rem issues with directories containing whitespaces.  
  8. cd /d %~dp0  
  9.   
  10. IF EXIST "%PROGUARD_HOME%" GOTO home  
  11. SET PROGUARD_HOME=..  
  12. :home  
  13.   
  14. set java_exe=  
  15. call "%PROGUARD_HOME%"\..\lib\find_java.bat  
  16.   
  17. call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*  





call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
改为:
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
即可!

我对比了之前的版本,发现这改法,就是改成和之前SDK版本中含有的proguard.bat文件一致。



现在最新的android-sdk_r18-windows已经没有此问题了!
而且默认已对android-support-v4.jar等声明过了,就无需再处理。
新版本更为方便。

如何还有提示这样的通常是第三方的包没声明保持现有类名。看错误的提示相应声明下就可以了。

 

转载地址:http://zmhgl.baihongyu.com/

你可能感兴趣的文章
教你优雅地运用JS模块化编程
查看>>
es6 随笔(一)
查看>>
HIVE数据倾斜总结
查看>>
OCR图文识别软件是怎么保存页面图像的
查看>>
JavaScript学习(二)
查看>>
Android虹软人脸识别sdk使用工具类
查看>>
springmvc 基于注解的controller
查看>>
Windows Phone本地数据库的使用框架和技巧
查看>>
nmap教程之nmap命令使用示例
查看>>
你不需要jQuery(二)
查看>>
linux用户和权限管理
查看>>
关于Linux系统的平均负载最全面介绍
查看>>
卸载一个程序
查看>>
Python-函数进阶
查看>>
mysql集群与存储
查看>>
Purism推出PureBoot以更好地保护Linux计算机
查看>>
pxe自动化部署
查看>>
逻辑卷硬盘搬家
查看>>
交互设计软件Framer X for mac软件测评
查看>>
零基础Python学习路线,小白的进阶之路!
查看>>