zoukankan      html  css  js  c++  java
  • Conversion to Dalvik format failed with error 1

     在签名时出现此问题,我以为是添加了广告SDK的问题,事实上是由于加入了混淆的问题.

    后面有评论说可以

    可以更新 proguard 到4.6  ,把最新的 lib  和 bin 文件覆盖,就可以了
    没必要 修改 批处理文件

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

    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.              该文件可能存在该项: <classpathentry kind="lib"   path ="你所指定的高版本的地址"  
    10.              把她修改成<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" />   
    11.         3) 修改AndroidManifest.xml   
    12.              在AndroidManifest.xml文件中,application标签后添加<uses-sdk android:minSdkVersion="3"></uses-sdk>   
    13.         4) 修改default.properties(很重要)   
    14.               该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。   
    15.         再看看你的工程和新建的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文件一致。

    REFRENCES:http://hsx9566.iteye.com/blog/1142002

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

    ---------------------------------------------------------------------------------------------------------------------------------
    copyright:http://www.cnblogs.com/anee/
  • 相关阅读:
    七 、linux正则表达式
    六、通配符
    Codeforces1099D.Sum in the tree(贪心)
    叮,出现!
    Codeforces1056E.Check Transcription(枚举+Hash)
    2018.11.25 AMC-ICPC 亚洲区域赛(焦作站)吊银
    Gym101889J. Jumping frog(合数分解+环形dp预处理)
    Gym101889E. Enigma(bfs+数位)
    Gym101889B. Buggy ICPC(打表)
    Codeforces1076F. Summer Practice Report(贪心+动态规划)
  • 原文地址:https://www.cnblogs.com/anee/p/2675762.html
Copyright © 2011-2022 走看看