【问题标题】:NetBeans Clean & Build Android error: Java.Lang X500Principal accessNetBeans Clean and Build Android 错误:Java.Lang X500Principal 访问
【发布时间】:2016-11-26 22:08:17
【问题描述】:

我想知道是否有人可以帮助解决这个问题。清理和构建最简单的项目时会发生错误。 (见下文)

导致错误的步骤:

作为一名新员工,因此是使用不超过 4 个月的机器的新用户,我首先打开 NetBeans 8.2 - 一周前为我安装了 NetBeans 和 Android Studio(用于 sdk)。

但是没有安装Android插件,所以我实现了nbandroid更新中心来安装插件。然后,我将位于 users\user.user1\AppData\local\android 文件夹中的 sdk 连接到 NetBeans。

为了运行某个项目的正确Android版本(4.2.2),我首先在Android Studio/SDK Manager中安装了4及以上版本,然后在NetBeans中选择了4.2.2。

在 NetBeans 中打开本地版本之前,我将一个 android 项目从共享文件服务器复制到我的本地计算机。

执行 Clean & Build 后出现以下错误(您可能会注意到存在与上述不同的文件夹结构。这是由于测试了不同的配置以找到可能的解决方案):

Current build type is different than previous build: forced apkbuilder run.
Creating Test-debug-unaligned.apk and signing it with a debug key...
C:\AndroidSDK\tools\ant\build.xml:958: The following error occurred while executing this line:
C:\AndroidSDK\tools\ant\build.xml:969: The following error occurred while executing this line:
C:\AndroidSDK\tools\ant\build.xml:312: 
java.lang.InternalError: Could not obtain X500Principal access
                at sun.security.x509.X500Name.<clinit>(X500Name.java:1399)
                at com.android.sdklib.internal.build.SignedJarBuilder.writeSignatureBlock(SignedJarBuilder.java:384)
                at com.android.sdklib.internal.build.SignedJarBuilder.close(SignedJarBuilder.java:273)
                at com.android.sdklib.build.ApkBuilder.sealApk(ApkBuilder.java:795)
                at com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:371)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
                at com.android.ant.IfElseTask.execute(IfElseTask.java:124)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
                at com.android.ant.IfElseTask.execute(IfElseTask.java:124)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
                at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
                at org.apache.tools.ant.Task.perform(Task.java:348)
                at org.apache.tools.ant.Target.execute(Target.java:435)
                at org.apache.tools.ant.Target.performTasks(Target.java:456)
                at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
                at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
                at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
                at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
                at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:286)
                at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:555)
                at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
Caused by: java.security.PrivilegedActionException: java.lang.NoSuchMethodException: javax.security.auth.x500.X500Principal.<init>(sun.security.x509.X500Name)
                at java.security.AccessController.doPrivileged(Native Method)
                at sun.security.x509.X500Name.<clinit>(X500Name.java:1392)
                ... 63 more
Caused by: java.lang.NoSuchMethodException: javax.security.auth.x500.X500Principal.<init>(sun.security.x509.X500Name)
                at java.lang.Class.getConstructor0(Class.java:3082)
                at java.lang.Class.getDeclaredConstructor(Class.java:2178)
                at sun.security.x509.X500Name$1.run(X500Name.java:1384)
                at sun.security.x509.X500Name$1.run(X500Name.java:1380)

这真的很奇怪,因为我的同事在他的 PC 上编译没有问题(几乎相同的 PC 除了使用 NetBeans 8.1 和 Jdk8u91 而不是我最新的 java)

已经咨询过的解决方案:

  • Android SDK、JDK 和所有相关的位置更改 应用程序,
  • 插入环境变量,例如 ANT_HOME, JAVA_HOME 和 ANDROID_HOME,
  • 安装所有插件和安卓版本,

  • 将环境变量路径插入 Jdk,

  • 在android studio中只安装4.2.2版本的android,

  • 以电脑管理员身份彻底卸载并重新安装 NetBeans、Android Studio、JDK、Android SDK,

  • 以我的同事为用户,

  • 清理和构建一个简单的启动项目,

  • 设置与我同事相同的 NetBeans 输入,

  • 探索谷歌的深度

我已经检查了权限并稍微了解了 Java 主体和工具,但不能 100% 确定我在做什么。

我想在尝试其他任何事情之前先咨询一下堆栈。任何帮助表示赞赏。

【问题讨论】:

  • 您的问题解决了吗?
  • 不怕。正在考虑改用 Eclipse,但与我的同事使用不同的平台并不理想。你有什么想法? @RandykaYudhistira
  • 我在 netbeans 8.2 上遇到了同样的问题,但在 netbeans 8.1 上没有

标签: java android netbeans ant java.lang


【解决方案1】:

插件 nbandroid 与 NetBeans 8.2 不兼容,基于 wiki 声明它适用于 NetBeans 8.1 nbandroid wiki,并且在 nbandroid 插件站点 here 上也记录了同一问题的错误。

一旦他们更新了插件以与较新版本的 NetBeans 一起使用,我希望这会得到解决。

【讨论】:

  • 有趣.. 那么您知道要使用不同的插件吗? @jonjon
  • 抱歉,我建议您将应用迁移到 Android Studio(使用 Gradle Build),因为它得到了更好的支持。
  • 但是为了更具建设性,它看起来是插件中的一个问题。作为一个开源项目,最好找一个有技能的人来发现问题并为所有人的利益进行修复。 (我不确定我的技能是否能胜任这项任务)
【解决方案2】:

同意 cmets 中的@RandykaYudhistira,采取了降级到 8.1 的解决方案,这完全解决了问题 - 允许我清理和构建新的本地应用程序。

成功。

但是,这并不能解决 NetBeans 8.2 的问题。找出这个问题是否有解决方案以及为什么像我这样的设置和其他设置会遇到这个问题会很有趣。

欢迎任何其他解决方案 - 解决而不是像我在这里那样“解决”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2011-11-10
    • 2012-12-17
    相关资源
    最近更新 更多