2011-09-26 126 views
9

当我在Eclipse中创建新项目时,会立即发生这种情况。Eclipse:转换为Dalvik格式失败,出现错误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。并取消选中“外部容器包含本机库时强制出错”。然后我得到:“无法解析R”而不是Dalvik错误。

也没有任何名为android.R的导入。

有人请帮忙吗?

回答

19

这看起来不像proguard的问题,因为它在defaults.properties文件中甚至没有启用。请尝试以下操作:

  1. 取消选中“强制错误时,外部罐包含本地库”选项(就像你所做的那样)
  2. 选择 - 从菜单
  3. “项目>清洁...”如果这不会有助于确保您拥有正确的R类导入。截至source.android.com说:

    Eclipse中有时喜欢在 顶部您的文件使用资源的添加进口android.R声明,尤其是当你问蚀 进行排序或管理进口。这会导致你的制造到 休息。注意这些错误的导入语句并删除它们。

UPDATE

看一看也是在这个线程:"Conversion to Dalvik format failed with error 1" on external JAR
检查下面的答案(链接会给你带来直接的答案):

+0

不怕,用android.R导入清理,同样的错误,再次删除它。现在再次报道dalvik thingy。 :-( 重新安装? –

+0

@AndersMetnik重新安装如果没有帮助,你可以在某处分享你的骨架项目(可能在文件托管中压缩)?所以我可以看看它并在我的环境中测试它 – Idolon

+0

@AndersMetnik你有没有成功?如果没有 - 检查我的更新回答。 – Idolon

1

你有新的Android SDK吗?如果这样做,则必须从proguard网站下载proguard.jar,并将其替换到SDK目录中。

+1

不知道为什么有人给你+1 ...你显然没有阅读我的文章。 –

0

我只是这个问题我自己战斗我最终做的是编辑proguard.bat文件,问题消失了

它在:Android的SDK安装目录] \工具\ proguard的\ BIN \ proguard.bat

变化

呼叫%java_exe%罐子 “%PROGUARD_HOME%” \ LIB \ proguard.jar% *

呼叫%java_exe%的罐子 “%PROGUARD_HOME%” \ lib中\ proguard.jar%1%2%3%4%5%6%7%8%9

我尝试了很多其他的东西,但这是什么为我做了。

+0

不适用于我:( – Houssem

2

我开始遇到这个问题......修复它的唯一方法是手动将最新版本的ProGuard(当前为4.6)替换为最新版本的版本的Proguard bin和lib文件夹。

之后,一切又开始工作。这显然是一个记录的bug ... http://code.google.com/p/android/issues/detail?id=18359

+1

我简单地将bin和lib从4.6更换为现有的proguard,它适用于我! – Hitendra

5

我错误地添加了一个对an​​droid.jar的副本的引用,它不是必需的,因为它是一个android依赖项,我删除了这个,错误消失了。

+0

此解决方案适用于我。 jar在我的构建路径。 –

0

如果您使用CVS更新,您必须每次清理项目。

0

我偶尔会遇到这个问题,我的解决方法是关闭'Build Automatically'。根据我的经验,当自动建筑开启时,Eclipse有时会在构建apks时感到困惑。

0

如果没有一个解决方案为你工作努力做到以下几点:

  1. 停止寻找在线帮助。
  2. 转到您的项目。即使在应用程序运行期间没有报告错误,它也可能是Dalvik以错误方式解释的代码中的内容。

我有这样的问题。禁用Proguard的应用程序的多次运行/编译/导出是成功的,只有在启用Proguard后出现错误1。 以下步骤可帮助您解决问题:

  1. 创建一个新项目。
  2. 为了检测可疑类,请在每次运行导出签名应用程序工具时逐一添加您的类。
  3. 通过逐个添加代码块来缩小该类中的搜索范围。

在我的情况下,错误是由引起:

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 
    } 
} 

的错误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 
    } 
} 

当我取而代之。

0

我已经在stackoverflow上尝试了很多解决方案,但没有为我工作。 我只是项目文件夹中打开project.properties文件,并在这里加上两次程序兼容性库像 android.library.reference.1 = ../appcompat_v7 android.library.reference.1 = ../appcompat_v7

我刚刚删除了一行,这对我有用:)

相关问题