在ADT Mac Bundle中创建第一个Android应用程序时出现java.lang.NullPointerException

时间:2013-08-06 22:03:56

标签: java android eclipse adt

在尝试创建新的Android应用程序时,我可以通过整个向导直到最后,当点击完成时给我一个错误:

错误在项目'test'上运行构建器'Android Resource Manager'。 显示java.lang.NullPointerException

我尝试多次重新安装ADT无济于事。有谁知道我的问题在这里?我有我正在尝试使用的API的SDK。

编辑:不确定是否有任何帮助,但在“安装新软件”中查看ADT更新网站时,我出现了错误

从存储库读取时出错:http://dl-ssl.google.com/android/eclipse/site.xml

谢谢, 约翰

5 个答案:

答案 0 :(得分:3)

我遇到了这个错误,并且最终解决了我的情况。

我目前正在运行Mavericks并安装了Java 1.7.0_55和Eclipse Java EE Kepler SR2 64位。我在Eclipse上成功安装了ADT插件,一切似乎都有效,但我得到了相同的

  

错误在项目'test'上运行构建器'Android Resource Manager'。显示java.lang.NullPointerException

当我尝试创建一个新的Android应用程序项目时出现

错误。

我最终决定安装Java 1.6(http://support.apple.com/kb/DL1572)和ADT Bundle。从ADT Bundle运行Eclipse工作正常,但由于Eclipse使用Java 1.7而不是1.6,因此仍然存在相同的错误。为了让Eclipse使用不同的版本,我添加了

  

<string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands/java</string>

<adt-bundle-directory>/eclipse/Eclipse.app/Contents/Info.plist。这解决了错误,我现在可以创建一个新的Android项目并使用Java 1.7运行另一个版本的Eclipse。 (查看Info.plist文件中的注释,找出添加选项字符串的位置。)

出于某种原因,设置我自己的Eclipse版本(Java EE Kepler SR2而不是ADT包中的那个)使用Java 1.6不起作用(Eclipse不再有Null指针错误,但它在创建时会挂起项目)。

我想我应该从一开始就遵循Android的系统要求(Java 1.6),这样可以避免所有这些悲伤。我正在从Windows转换,使用Java 1.7 for Android开发没有问题,我错误地认为(希望)对MacOS来说是正确的。

答案 1 :(得分:2)

有同样的问题并且已经解决了,离Gavin的方法不远。

我在-vmargs之前在eclipse.ini上添加了这个而不是Gavin

-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java

答案 2 :(得分:1)

阿尔伯特公园是对的,但我有另一种简单的方法来解决它。

首先,您需要检查您的java版本,如果它是1.7.x,您只需按照本文http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

删除它
  

卸载JDK要卸载JDK,您必须具有Administrator   权限并以root身份或使用执行remove命令   sudo(8)工具。

     

导航到/ Library / Java / JavaVirtualMachines并删除目录   其名称与以下格式匹配:*

/Library/Java/JavaVirtualMachines/jdk<major>.<minor>.<macro[_update]>.jdk
     

例如,卸载7u6:

% rm -rf jdk1.7.0_06.jdk

这就是全部。

答案 3 :(得分:1)

最后,我完成了这件事。

参考eclipse wiki(https://wiki.eclipse.org/Eclipse.ini

  

-vm值:Mac OS X示例   在Mac OS X系统上,您可以通过右键单击(或按住Ctrl键单击)Finder中的Eclipse可执行文件,选择Show Package Contents,然后在Contents下的MacOS文件夹中找到eclipse.ini来找到eclipse.ini。 p>      

为OS X指定Java 6:

     

-vm   /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java   对于Mac OS X 10.7+的版本,位置已更改为

     

/库/爪哇/ JavaVirtualMachines /&LT; '' jdk_name_ver '' &GT; /内容/主页/ ...   为了更安全,请通过实用程序/ usr / libexec / java_home确定要使用的JDK的位置,并将此值与... / bin / java一起添加到Eclipse.ini文件中。

因为我使用的是Mac 10.10。我的家园是

/usr/libexec/java_home -V
Matching Java Virtual Machines (3):
1.7.0_71, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-466.1, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

所以我在-vmargs

之前在eclipse.ini中添加了以下内容
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/bin/java

就是这样!

答案 4 :(得分:0)

尝试创建新工作区。此外,只需从目录本身读取,而不是从“site.xml”文件中读取。但是,如果安装ADT,则不需要这样做,已经为您安装了插件。如果仍然无效,请在ADT软件包文件夹中打开应用程序“SDK Manager”并安装所有内容。您可能需要以管理员身份运行才能执行此操作。