Can';t编译Android测试应用程序

Can';t编译Android测试应用程序,android,sdk,development-environment,Android,Sdk,Development Environment,我决定尝试为Android编程。我开始学习他们的教程,但无法运行第一个项目自动创建的应用程序。我怀疑我的计算机设置错误,但不知道在哪里查找错误 本教程要求转到新创建项目的目录并运行antdebug。这为我抛出了一个错误:java.lang.NoClassDefFoundError:com.android.sdklib.internal.build.DebugKeyProvider。我怀疑SDK安装不好,但不知道出了什么问题,也不知道如何修复它 我的计算机运行openSUSE 12.1 64位。我

我决定尝试为Android编程。我开始学习他们的教程,但无法运行第一个项目自动创建的应用程序。我怀疑我的计算机设置错误,但不知道在哪里查找错误

本教程要求转到新创建项目的目录并运行
antdebug
。这为我抛出了一个错误:
java.lang.NoClassDefFoundError:com.android.sdklib.internal.build.DebugKeyProvider
。我怀疑SDK安装不好,但不知道出了什么问题,也不知道如何修复它

我的计算机运行openSUSE 12.1 64位。我安装了Oracte JDK 1.7.0_04版,以及Android SDK,包括工具和平台Android 4.0和4.0.3。安装后,我将android tools文件夹添加到我的path环境中,并为我的手机添加了一个udev规则,但没有进行进一步的自定义。Adb看到了我的手机,我可以用ddms截图。我不使用Eclipse

我错过了一些设置吗?如何解决此问题

更新我发现了一个关于有同样问题的人的报告。他通过更新/usr/bin中名为“keytool”的符号链接,指向正确的文件,解决了这个问题。我没有这样的链接,所以我创建了它。问题依然存在。回答这个问题的人建议SDK中可能缺少一个名为“jarutil.jar”的文件。我的SDK中没有这样的文件,即使重新安装后也是如此。由于讨论已经进行了一年多,我甚至不知道当前版本中是否应该存在这样的文件

以下是
ant debug
命令的完整输出:

rumtscho@bradbury:~/dev/learn android/MyFirstApp>ant调试构建文件: /home/rumtscho/dev/learn-android/MyFirstApp/build.xml

-设置模式检查:

-设置调试文件:

-设置调试模式:

-调试混淆检查:

-设置: [echo]如果需要,正在创建输出目录。。。 [echo]正在收集MyFirstApp的信息。。。 [设置]Android SDK工具第19版 [设置]项目目标:Android 4.0.3 [设置]API级别:15 [设置] [设置]------------------ [设置]解析库依赖项: [设置]没有库依赖项。 [设置] [设置]------------------
[setup]APIOracle JDK rpm没有以SuSE方式配置Java。特别是,您的JAVA_主页可能设置不正确

试试
JAVA\u HOME=/usr/JAVA/default ant debug

还要确保
readlink-f`which java`
指向您的Oracle JDK

似乎您可以在
/etc/JAVA/JAVA.conf

Apache Ant手册建议使用以下方法设置Ant需要的环境变量:

export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.5.0.05
export PATH=${PATH}:${ANT_HOME}/bin 

其中jdk编号应指向计算机上安装的jdk编号。这也会永久设置变量

您不使用eclipse有什么原因吗?我想这与SDK不在类路径上有关。另外,在Java1.7下这样做有什么原因吗?我只是好奇,因为我从来没有听说过它能工作(或不工作)。@Falmari原因是我想在没有Eclipse的情况下学习它——上次我不得不使用Eclipse编写的项目(不适用于Android),我们遇到了dll地狱般的情况,没有人知道出了什么问题。此外,我确实将SDK(或者至少是Android教程中建议的工具和平台工具文件夹)放到了我的路径中。java 1.7有什么奇怪之处?它只是JDK的当前版本,所以这就是我安装的。我使用OracleJava是因为我有一些程序不使用开放的java运行。@rumtscho:我会认真考虑使用eclipse。它与ADT、Android SDK和AVD管理器配合使用的方式使它值得一试。这不是我使用过的最好的IDE,但它让我的生活更轻松。只是我的意见,你的选择。我可能在将来某个时候开始使用eclipse。我只想先了解细节,不要让它挡住我。当我对不依赖eclipse创建应用程序的知识感到满意时,我可能会开始使用它以方便使用。libgcj.so.12中的错误意味着ant试图使用gcc编译java。现在它运行了。非常感谢。