当我在Eclipse中创建一个新项目时,会立即发生这种情况。
我在项目中只有1个jar文件,我试图将其删除,然后重复添加,多次,并在此之后清理项目。
我更新了ProGuard(我认为),下载了新版本,并将lib文件夹替换为此处的线程所说的。
我的 default.properties 文件如下所示:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-8
因此无法对另一个主题中提到的ProGuard发表任何评论。
我觉得我已经尝试了一切,但仍然存在这个错误。
如果我去,我注意到的一件事:
window -> preferences -> android -> build
。并取消选中“当外部jar包含本机库时强制错误”。然后我得到:“无法解决R”而不是Dalvik错误。
也没有名为android.R
的导入。
有人帮忙吗?
答案 0 :(得分:19)
这看起来不像proguard的问题,因为它甚至没有在 defaults.properties 文件中启用。请尝试以下方法:
Eclipse有时候喜欢在这里添加一个导入android.R语句 使用资源的文件顶部,尤其是当您询问eclipse时 排序或以其他方式管理进口。这将导致你的制作 打破。注意这些错误的import语句并删除它们。
更新
还要看一下这个主题:"Conversion to Dalvik format failed with error 1" on external JAR 检查以下答案(链接将直接带您回答):
答案 1 :(得分:5)
我错误地添加了对android.jar副本的引用,这不是必需的,因为它是一个Android依赖项,我删除了这个并且错误消失了。
答案 2 :(得分:2)
我也开始遇到这个问题......唯一能解决这个问题的是手动下载最新版本的ProGuard(目前是4.6版)并用最新版本替换SDK版本的Proguard的bin和lib文件夹。 / p>
之后一切都开始了。这显然是一个记录错误... http://code.google.com/p/android/issues/detail?id=18359
答案 3 :(得分:1)
你有新的Android SDK吗?如果您这样做,则必须从proguard网站下载proguard.jar并将其替换为SDK目录。
答案 4 :(得分:0)
我只是在解决这个问题,我最后做的是编辑proguard.bat文件,问题消失了
它位于:[Android SDK安装目录] \ tools \ proguard \ bin \ proguard.bat
更改
调用%java_exe%-jar“%PROGUARD_HOME%”\ lib \ proguard.jar%*
到
调用%java_exe%-jar“%PROGUARD_HOME%”\ lib \ proguard.jar%1%2%3%4%5%6%7%8%9
我尝试了很多其他的东西,但这就是为我做的。
答案 5 :(得分:0)
如果您使用CVS更新,则每次都必须清理项目。
答案 6 :(得分:0)
我偶尔会遇到这个问题,对我来说,解决方法是关闭“自动构建”#39;。根据我的经验,当打开自动构建时,Eclipse在构建apks时有时会感到困惑。
答案 7 :(得分:0)
如果所有解决方案都不适合您,请尝试执行以下操作:
我遇到了这样的问题。禁用Proguard的应用程序的多次运行/构建/导出是成功的,只有在启用Proguard后才会出现错误1。 以下步骤可以帮助您解决问题:
在我的情况下,错误是由以下原因引起的:
float[][] array1 = null, array2;
for(int i = 0; i < someVal; i++){
if(array1 == null){
array1 = new float[row][col];
}
else{
array2 = new float[array1.length][array1[0].length]; // ERROR 1
// it was assumed that array1 is still null
}
}
当我用以下代替时:
float[][] array1 = new float[1][1], array2;
for(int i = 0; i < someVal; i++){
if(i == 0){
array1 = new float[row][col];
}
else{
array2 = new float[array1.length][array1[0].length]; // ERROR 1
// it was assumed that array1 is still null
}
}
ERROR 1消失了。
答案 8 :(得分:0)
我在stackoverflow上尝试了很多解决方案,但没有任何方法可以帮助我。 我只是打开项目文件夹中的project.properties文件,并在这里添加了两次appcompat库 android.library.reference.1 = .. / appcompat_v7 android.library.reference.1 = .. / appcompat_v7
我刚删除了一行,这对我有用:)