Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android/Java:Java:Exception调用Java.lang.Class.getSimpleName时由NullPointerException引起的初始化错误_Java_Android_Static_Nullpointerexception - Fatal编程技术网

Android/Java:Java:Exception调用Java.lang.Class.getSimpleName时由NullPointerException引起的初始化错误

Android/Java:Java:Exception调用Java.lang.Class.getSimpleName时由NullPointerException引起的初始化错误,java,android,static,nullpointerexception,Java,Android,Static,Nullpointerexception,我的应用程序上有一些崩溃日志。 以下是我的应用程序项目中的代码 public class MessageCenter { private static final String TAG = MessageCenter.class.getSimpleName(); 这是发生错误的Java库源代码 public String getSimpleName() { if (isArray()) { return getComponentType().getS

我的应用程序上有一些崩溃日志。 以下是我的应用程序项目中的代码

public class MessageCenter {

     private static final String TAG = MessageCenter.class.getSimpleName();
这是发生错误的Java库源代码

    public String getSimpleName() {
    if (isArray()) {
        return getComponentType().getSimpleName() + "[]";
    }

    String name = getName();

    if (isAnonymousClass()) {
        return "";
    }

    if (isMemberClass() || isLocalClass()) {
        return getInnerClassName();
    }

    int dot = name.lastIndexOf('.');
    if (dot != -1) {
        return name.substring(dot + 1);
    }

    return name;
}
我不知道为什么会这样。 这是Java基本API,没有参数

此外,它并没有很好地重现,我发现它只是出现在4.1.2安卓操作系统版本上。(我不确定其他操作系统版本)

下面是日志

03-09 18:24:08.547 W/ImageLoader(19218): memoryCache() and memoryCacheSize() calls overlap each other
03-09 18:24:08.547 W/ImageLoader(19218): diskCache() and diskCacheFileNameGenerator() calls overlap each other
03-09 18:24:08.547 W/ImageLoader(19218): diskCache(), diskCacheSize() and diskCacheFileCount calls overlap each other
03-09 18:24:08.547 W/ImageLoader(19218): diskCache(), diskCacheSize() and diskCacheFileCount calls overlap each other
03-09 18:24:08.547 D/ImageLoader(19218): Initialize ImageLoader with configuration
03-09 18:24:08.547 I/System.out(19218): Couldn't load jnicrash from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.esplanet.lounge-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.esplanet.lounge-1, /vendor/lib, /system/lib]]]: findLibrary returned null
03-09 18:24:08.547 D/dalvikvm(19218): processAnnotationValue failed on default for 'httpMethod'
03-09 18:24:08.547 D/dalvikvm(19218): processAnnotationValue failed on default for 'reportType'
03-09 18:24:08.557 D/CrashLogger(19218): CrashLogger is enabled for com.esplanet.lounge, intializing...
03-09 18:24:08.557 V/TloungeAppApi(19218): [LoungeAppApi] init(Context context) call
03-09 18:24:08.577 V/TloungeAppApi(19218): [LoungeApi] onServiceConnected = 1
03-09 18:24:08.587 V/TloungeAppApi(19218): [LoungeAppApi] call isMdnLogin
03-09 18:24:08.587 V/TloungeAppApi(19218): isMdnLogin() call
03-09 18:24:08.587 W/dalvikvm(19218): Exception Ljava/lang/NullPointerException; thrown while initializing Lcom/esplanet/pp/sdk/MessageCenter;
03-09 18:24:08.587 D/AndroidRuntime(19218): Shutting down VM
03-09 18:24:08.587 W/dalvikvm(19218): threadid=1: thread exiting with uncaught exception (group=0x416bad58)
03-09 18:24:08.587 E/CrashLogger(19218): CrashLogger caught a ExceptionInInitializerError exception for com.esplanet.lounge. Building report.
03-09 18:24:08.587 E/dalvikvm(19218): Invalid debug info stream. class Lcom/esplanet/pp/sdk/MessageCenter;; proto ()V
03-09 18:24:08.687 E/CrashLogger(19218): com.esplanet.lounge fatal error : null
03-09 18:24:08.687 E/CrashLogger(19218): java.lang.ExceptionInInitializerError
03-09 18:24:08.687 E/CrashLogger(19218):        at com.esplanet.lounge.core.pushmgr.PushManager.initMessageCenter(PushManager.java:275)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.esplanet.lounge.core.pushmgr.PushManager.init(PushManager.java:263)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.esplanet.lounge.core.pushmgr.PushManager.access$8(PushManager.java:262)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.esplanet.lounge.core.pushmgr.PushManager$6.run(PushManager.java:235)
03-09 18:24:08.687 E/CrashLogger(19218):        at android.os.Handler.handleCallback(Handler.java:733)
03-09 18:24:08.687 E/CrashLogger(19218):        at android.os.Handler.dispatchMessage(Handler.java:95)
03-09 18:24:08.687 E/CrashLogger(19218):        at android.os.Looper.loop(Looper.java:136)
03-09 18:24:08.687 E/CrashLogger(19218):        at android.app.ActivityThread.main(ActivityThread.java:5090)
03-09 18:24:08.687 E/CrashLogger(19218):        at java.lang.reflect.Method.invokeNative(Native Method)
03-09 18:24:08.687 E/CrashLogger(19218):        at java.lang.reflect.Method.invoke(Method.java:515)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
03-09 18:24:08.687 E/CrashLogger(19218):        at dalvik.system.NativeStart.main(Native Method)
03-09 18:24:08.687 E/CrashLogger(19218): Caused by: java.lang.NullPointerException
03-09 18:24:08.687 E/CrashLogger(19218):        at java.lang.Class.getSimpleName(Class.java:946)
03-09 18:24:08.687 E/CrashLogger(19218):        at com.esplanet.pp.sdk.MessageCenter.<clinit>(MessageCenter.java)
03-09 18:24:08.687 E/CrashLogger(19218):        ... 13 more
03-09 18:24:08.687 I/Process (19218): Sending signal. PID: 19218 SIG: 9
03-09 18:24:08.547 W/ImageLoader(19218):memoryCache()和memoryCacheSize()调用相互重叠
03-09 18:24:08.547 W/ImageLoader(19218):diskCache()和diskCacheFileNameGenerator()调用相互重叠
03-09 18:24:08.547 W/ImageLoader(19218):diskCache()、diskCacheSize()和diskCacheFileCount调用相互重叠
03-09 18:24:08.547 W/ImageLoader(19218):diskCache()、diskCacheSize()和diskCacheFileCount调用相互重叠
03-09 18:24:08.547 D/ImageLoader(19218):使用配置初始化ImageLoader
03-09 18:24:08.547 I/System.out(19218):无法从加载程序dalvik.System.PathClassLoader[DexPathList[[zip文件”//data/app/com.esplanet.lounge-1.apk“],NativelLibrary目录=[/data/app-lib/com.esplanet.lounge-1,/vendor/lib,/System/lib]]:findLibrary返回空值
03-09 18:24:08.547 D/dalvikvm(19218):processAnnotationValue在“httpMethod”的默认值上失败
03-09 18:24:08.547 D/dalvikvm(19218):processAnnotationValue在“reportType”的默认值上失败
03-09 18:24:08.557 D/CrashLogger(19218):为com.esplanet.lounge启用CrashLogger,初始化。。。
03-09 18:24:08.557 V/TloungeAppApi(19218):[LoungeAppApi]初始化(上下文)调用
03-09 18:24:08.577 V/TloungeAppApi(19218):[LoungeApi]服务连接=1
03-09 18:24:08.587 V/TloungeAppApi(19218):[LoungeAppApi]呼叫isMdnLogin
03-09 18:24:08.587 V/TloungeAppApi(19218):isMdnLogin()调用
03-09 18:24:08.587 W/dalvikvm(19218):异常Ljava/lang/NullPointerException;初始化Lcom/esplanet/pp/sdk/MessageCenter时抛出;
03-09 18:24:08.587 D/AndroidRuntime(19218):关闭虚拟机
03-09 18:24:08.587 W/dalvikvm(19218):threadid=1:线程退出时出现未捕获异常(组=0x416bad58)
03-09 18:24:08.587 E/CrashLogger(19218):CrashLogger捕获了com.esplanet.lounge的异常初始化错误异常。建筑报告。
03-09 18:24:08.587 E/dalvikvm(19218):调试信息流无效。Lcom/esplanet/pp/sdk/MessageCenter类;;原型()V
03-09 18:24:08.687 E/CrashLogger(19218):com.esplanet.lounge致命错误:null
03-09 18:24:08.687 E/CrashLogger(19218):java.lang.ExceptionInInitializeError
03-09 18:24:08.687 E/CrashLogger(19218):在com.esplanet.lounge.core.pushmgr.PushManager.initMessageCenter(PushManager.java:275)
03-09 18:24:08.687 E/CrashLogger(19218):位于com.esplanet.lounge.core.pushmgr.PushManager.init(PushManager.java:263)
03-09 18:24:08.687 E/CrashLogger(19218):在com.esplanet.lounge.core.pushmgr.PushManager.access$8(PushManager.java:262)
03-09 18:24:08.687 E/CrashLogger(19218):在com.esplanet.lounge.core.pushmgr.PushManager$6.run(PushManager.java:235)
03-09 18:24:08.687 E/crashloger(19218):在android.os.Handler.handleCallback(Handler.java:733)
03-09 18:24:08.687 E/CrashLogger(19218):在android.os.Handler.dispatchMessage(Handler.java:95)上
03-09 18:24:08.687 E/CrashLogger(19218):在android.os.Looper.loop(Looper.java:136)
03-09 18:24:08.687 E/CrashLogger(19218):在android.app.ActivityThread.main(ActivityThread.java:5090)
03-09 18:24:08.687 E/CrashLogger(19218):位于java.lang.reflect.Method.invokenactive(本机方法)
03-09 18:24:08.687 E/CrashLogger(19218):在java.lang.reflect.Method.invoke(Method.java:515)处
03-09 18:24:08.687 E/CrashLogger(19218):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
03-09 18:24:08.687 E/CrashLogger(19218):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
03-09 18:24:08.687 E/CrashLogger(19218):在dalvik.system.NativeStart.main(本地方法)
03-09 18:24:08.687 E/CrashLogger(19218):由以下原因引起:java.lang.NullPointerException
03-09 18:24:08.687 E/CrashLogger(19218):在java.lang.Class.getSimpleName(Class.java:946)
03-09 18:24:08.687 E/CrashLogger(19218):位于com.esplanet.pp.sdk.MessageCenter.(MessageCenter.java)
03-09 18:24:08.687 E/CrashLogger(19218):。。。还有13个
03-09 18:24:08.687 I/进程(19218):发送信号。PID:19218 SIG:9
如果有人想避免例外,请与我联系。 谢谢

这个

public String getSimpleName() {
    if (isArray()) {
        return getComponentType().getSimpleName() + "[]";
    }
是一个实例方法,因为没有提到static关键字。您试图在静态上下文中调用该方法,即不是在对象上调用该方法,这就是初始值设定项错误的原因。 在调用此之前,需要对象的实例。请重试

 private static final String TAG = new MessageCenter().getClass().getSimpleName();
或者,如果要维护静态引用

private static final String TAG = MessageCenter.class.getClass().getSimpleName();

我觉得你的信息中心课程有问题。你可以发布整个日志吗?我不能给你整个日志。因为它没有很好的复制和自动收集。谢谢你的快速回答@Droidekas。但是使用getClass()和不使用有什么区别呢?你知道为什么它不能100%繁殖吗?