【问题标题】:getClass().getProtectionDomain().getCodeSource().getLocation().getPath() Throw a null pointer exceptiongetClass().getProtectionDomain().getCodeSource().getLocation().getPath() 抛出空指针异常
【发布时间】:2015-03-03 15:06:23
【问题描述】:

我在 Java 类中使用这行代码来检索我用来自定义 ClassLoader 的 URI:

String uri = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

现在,在 MainActivity 中的 Android App 中的同一行代码确切地抛出空指针异常。

Android 开发有什么特别之处吗? 谢谢。

【问题讨论】:

  • 当时this的值是多少? getClass() 不是静态方法。
  • 将其分解为单独的语句,并告诉我们哪些方法调用失败了。
  • @PM77-1: 和this.getClass()getClass() 一样,它指的是当前加载的类。
  • @EJP:是的,我知道,不幸的是还是同样的问题。

标签: java android class classloader


【解决方案1】:

getProtectionDomain() 在 Android 的 Java 版本中没有实现

http://developer.android.com/reference/java/lang/Class.html#getProtectionDomain%28%29

此外,ProtectionDomain 类被标记为“旧版安全代码;请勿使用。”

http://developer.android.com/reference/java/security/ProtectionDomain.html

我假设这仅存在于 Android Java 中以保持编译兼容性。

【讨论】:

  • 富,你是对的。是否有任何技巧或其他解决方案来做到这一点。我希望 URI 在同一路径中加载已编译的类 (.class)。
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 2020-08-10
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多