在 ADT Mac Bundle 中创建第一个 android 应用程序时出现 java.lang.NullPointerException
Posted
技术标签:
【中文标题】在 ADT Mac Bundle 中创建第一个 android 应用程序时出现 java.lang.NullPointerException【英文标题】:java.lang.NullPointerException when creating first android app in ADT Mac Bundle 【发布时间】:2013-08-08 02:50:06 【问题描述】:当尝试创建一个新的 android 应用程序时,我可以通过整个向导直到最后,单击完成时出现错误:
在项目“测试”上运行构建器“Android 资源管理器”时出错。 java.lang.NullPointerException
我多次尝试重新安装 ADT 均无济于事。有谁知道我的问题在这里?我有我正在尝试使用的 API 的 SDK。
编辑:不确定它是否有任何帮助,但是在“安装新软件”中查看 ADT 更新站点时,我遇到了错误
从存储库读取时出错:http://dl-ssl.google.com/android/eclipse/site.xml。
谢谢, 约翰
【问题讨论】:
【参考方案1】:遇到了同样的问题,已经解决了,离Gavin的方法不远了。
我在 eclipse.ini 上 -vmargs 之前添加了这个而不是 Gavin 的
-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java
【讨论】:
【参考方案2】:我终于搞定了。
参考 eclipse wiki (https://wiki.eclipse.org/Eclipse.ini)
-vm 值:Mac OS X 示例 在 Mac OS X 系统上,您可以通过右键单击(或 Ctrl+单击)Finder 中的 Eclipse 可执行文件找到 eclipse.ini,选择 Show Package Contents,然后在 MacOS 文件夹中的 Contents 下找到 eclipse.ini。
为 OS X 指定 Java 6:
-vm /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java 对于 Mac OS X 10.7+ 版本,位置已更改为
/Library/Java/JavaVirtualMachines//Contents/Home/... 为了更安全,请通过实用程序 /usr/libexec/java_home 确定要使用的 JDK 的位置,并将此值与 .../bin/java 附加到 Eclipse.ini 文件中。
因为我使用的是 Mac 10.10。我的 java 家是
/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
就是这样!
【讨论】:
【参考方案3】:我遇到了这个错误,终于针对我的情况解决了。
我目前正在运行 Mavericks 并安装了 Java 1.7.0_55 和 Eclipse Java EE Kepler SR2 64bit。我在 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 文件中的 cmets 以确定在何处添加选项字符串。)
由于某种原因,将我自己的 Eclipse 版本(Java EE Kepler SR2,而不是 ADT 包中的那个)设置为使用 Java 1.6 不起作用(Eclipse 不再出现 Null 指针错误,但在创建项目)。
我想我应该从一开始就遵循 Android (Java 1.6) 的系统要求,这样可以让我免于痛苦。我正在从 Windows 转换过来,使用 Java 1.7 进行 Android 开发没有问题,我错误地假设(希望)这对于 MacOS 来说是正确的。
【讨论】:
我建议将 vm 设置为eclipse.ini
。【参考方案4】:
Albert Park 是对的,但我有另一种简单的方法来解决它。
首先你需要检查你的java版本,如果是1.7.x你只需要按照这篇文章http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html删除它
卸载 JDK 要卸载 JDK,您必须拥有管理员权限 权限并以 root 身份或使用执行删除命令 sudo(8) 工具。
导航到 /Library/Java/JavaVirtualMachines 并删除目录 其名称符合以下格式:*
/Library/Java/JavaVirtualMachines/jdk<major>.<minor>.<macro[_update]>.jdk
例如,要卸载 7u6:
% rm -rf jdk1.7.0_06.jdk
就是这样。
【讨论】:
【参考方案5】:尝试创建一个新工作区。此外,不是从“site.xml”文件中读取,而是从目录本身读取。但是,如果您安装 ADT,则不需要这样做,因为该插件已经为您安装好了。如果仍然无法正常工作,请在您的 ADT 捆绑文件夹中打开应用程序“SDK Manager”并安装所有内容。您可能需要以管理员身份运行才能执行此操作。
【讨论】:
以上是关于在 ADT Mac Bundle 中创建第一个 android 应用程序时出现 java.lang.NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
是否应在 Hyper-V 中创建第 1 代或第 2 代虚拟机?
adt-bundle-linux-x86_64-20131030下新建project提示找不到adb和R.java问题的解决