【发布时间】:2015-01-20 05:17:26
【问题描述】:
此代码(jar 文件)是由其他人编写的,它不是很干净,但在其他(旧)版本的 Android 上运行良好,但在 Lollipop 上存在问题,仅在调试模式下抛出 NullPointerException,否则测试应用程序只是挂起。此行为仅在 Lollipop 上可见。
我可以使用字符串重现该问题。
public class MyPlugin implements Runnable{
public void run(){
init();
// Initialize done.
}
// Internally triggered when plug-in has to be stopped.
private void stopPlugin(String message){
try
{
Log.w("MyPlugin", "Lets make exception happen");
String test=null;
int value = test.length();
Log.w("MyPlugin", "String Length " + value);
}
catch(Exception e)
{
Log.w("MyPlugin", "The exception was handled");
}
}
}
在旧版本的 android 中当 "test.length();"调用时,会抛出 NullPointerException,但在 Lollipop 上它不会触发异常。但是如果我进入调试模式,就会抛出异常。
知道这是为什么吗?
【问题讨论】:
-
这种行为(IMO)完全不可信。但如果它真的发生了,那就是一个严重的平台错误。
-
@Vishvesh:如发布的代码长度方法在测试为空时调用。测试在哪里初始化??
-
@ρяσѕρєяK 我试图重现这个问题。测试未初始化。
-
@StephenC 我是否有可能在我的代码中做了一些愚蠢的事情来负责这个问题?当我在我的应用程序中尝试相同的事情时,会引发异常。问题在于 jar 文件。
-
在 5.02 的调试器下存在一个已知的异常处理问题。 android-review.googlesource.com/#/c/123720 解决了这个问题。
标签: java android nullpointerexception android-5.0-lollipop