今天我将我的ADT和SDK更新到最新版本r17。现在我再也无法导出我的应用程序了 每次我尝试导出一个烧焦的应用程序时,我得到转换为Dalivk格式失败,错误1。
如果我通过project.properties激活或不使用proguard尝试它,没有区别。
我希望有人可以帮助我。
我不能发布任何日志,因为它不会给我任何输出;(
错误讯息:
Conversion to dalvik format failed with error 1
干杯, 麦克
修改
文件夹结构:
/ProjectName/src
/ProjectName/gen
/ProjectName/assets
/ProjectName/bin
/ProjectName/proguard
/ProjectName/res
/ProjectName/AndroidManifest.xml
/ProjectName/lint.xml
/ProjectName/proguard.cfg
/ProjectName/project.properties
还有Android依赖项:
/Users/##/ViewPagerIndicator/library/bin/viewpagerlistviewlibrary.jar
/Users/##/NineOldAndroids/library/bin/nineolddroidslibrary.jar
/Users/##/ActionBarSherlock/ActionBarSherlock v3.0/library/bin/actionbarsherlock.jar
/Users/##/GreenDroid/bin/greendroid.jar
/Developer/##/annotations.jar
/Users/##/ViewPagerIndicator/library/libs/android-support-v4.jar
参考图书馆:
/Users/##/Project Librarys/AdMob Ads v4.3.1/GoogleAdMobAdsSdk-4.3.1.jar
/Users/##Project Librarys/SwarmLib/Swarm.jar
/Users/##/Project Librarys/heyzap-sdk-2.0.7/android-sdk/heyzap-sdk-2.0.7.jar
/Users/##/Project Librarys/google-gson-2.1/gson-2.1.jar
/Users/##/Project Librarys/Acra v4.2.3/build/acra-4.2.3.jar
修改
尝试删除所有库并再次添加它们。试图将外部库放入libs文件夹,而不是通过属性添加它们。没有区别^^
答案 0 :(得分:0)
看看这个:http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17
它为我解决了“转换为dalvik”和“未找到课程”的问题。我只需要在链接建议的更改后重新启动Eclipse。
答案 1 :(得分:0)
在ADT 17中,他们改变了ADT如何处理依赖关系以及升级的proguard(到版本4.7)以及创建并将proguard.cfg
分离为“全局”proguard-android.txt
和proguard-project.txt
。
我按照@leocadiotine(http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17)发布的链接,基本上是从构建路径中删除所有jar(并且不要重新添加它们...... ADT现在自动包含它们)。< / p>
我还更新了我的proguard以使用Android全局默认值,然后将我的项目特定的proguard需求添加到新的proguard-android.txt
(替换proguard.cfg
)。然后刚刚添加
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
到我的project.properties
。 (有关详细信息,请参阅http://tools.android.com/recent/proguardimprovements。)
那为我做了。希望有所帮助。
答案 2 :(得分:0)
我在工作中碰到了同样的问题,我的团队的几位成员更新到ADT v17版本。
ADT v17现在使用位于libs目录中的每个jar文件,包括未在项目的java构建路径下指定的文件。 我们依赖的事实是并非所有的jar都被加载了,因为我的团队在libs目录中留下了旧的未使用的旧jar文件(因为我们开发了一个jar的新版本,我们在libs目录中留下了旧版本)。当然现在正在使用同一个jar的多个版本,所以这就是导致错误 java.lang.IllegalArgumentException:已经添加的原因。
简单地从项目的构建路径中清除所有指定的jar不是解决方案;它会破坏其他开发人员不使用ADT v17。最好的解决方案是将所有遗留罐从libs目录中移出(这是我们应该首先完成的事情:P)。
答案 3 :(得分:0)
更新到ADT r20解决了所有问题