5

我刚刚安装了 Eclipse-Classic 3.7.2 和 android SDK。还使用 ADT 插件安装/配置了 eclipse。

现在,按照http://developer.android.com/resources/tutorials/hello-world.html中的步骤创建“Hello World”应用程序后,我尝试在 Android 模拟器中运行该应用程序。但这会引发错误

构建过程中发生错误。在项目“HelloAndroid”上运行构建器“Android Package Builder”时出错。sun/security/x509/X500Name

你能解释一下我在这里做错了什么,或者我需要解决这个错误吗?

谢谢泽山

4

2 回答 2

5

就我而言,ADT 插件试图使用启动 eclipse 的 JVM 中的 keytool 实用程序。这是 IBM JDK,这失败了,因为 IBM JDK 附带的 keytool 与 Sun 版本不兼容——它的语法与 Google 文档不匹配,它会自动在 ~/.keystore 中创建密钥库文件(没有实际上告诉你它是在哪里创建的)。

以下解决方案对我有用:
1. 安装 sun jvm
2. 从终端执行: eclipse -vm path_to_sun_java/javaw

代替第 2 步,您可以编辑 eclipse.ini 来告诉使用哪个 jvm(参考eclipse.ini

-vm
/usr/lib/sunjdk/bin/javaw
于 2013-05-10T07:14:13.797 回答
3

该问题与您正在使用的 JVM 有关,还与必须使用此 JVM 中的 keytool 生成的证书有关。

这是我在我的 Linux Ubuntu v11.04 系统中用来解决这个问题的命令:

  1. 我已经在我的计算机上安装了 Oracle/Sun SDK 1.6(SDK 不是 JRE 之一)。

  2. 我使用以下指令将此新的 SUN JVM 设为默认值

    sudo update-alternatives --config java

    注意将显示一个列表,其中包含系统上所有可用的 JVM,选择 SUN 之一。

  3. 现在您将能够使用 SUN 提供的 JVM 执行此命令:

    keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000
    

注意在执行此命令之前,您应该删除旧的 debug.keystore 文件,或者根据需要重命名它。

现在您的系统已启动并正在运行,那么您需要在 Eclipse 中配置新的 JVM 以便使用这个新版本进行编译。

于 2012-08-18T05:10:14.003 回答