为什么我会犯这个错误?如何将此方法/类的信息传递给其他类?pusher类/代码正确地获取数据并正确显示,但是当我试图从另一个类访问其他方法时,它会给出下面的错误。有什么想法吗?下面是具有Handler_Pusher类的pusher代码:
privatechannel.bind("event", new PrivateChannelEventListener() {
@Override
public void onEvent(final String channelName, final String eventName, final String data) {
Log.v(TAG, "Private Test onEvent: " + channelName + " " + eventName + " " + data);
docSyncData = getDocumentUrlExtension(data);
final String URL = DOCUMENT_URL_PREFIX + docSyncData + ".pdf";
Log.v(TAG, "URL:::" + URL);
Activity_InCall.dialogLaunch(URL);
}
@Override
public void onSubscriptionSucceeded(String channelName) {
Log.v(TAG, "Private Channel onSubscriptionSucceeded: " + channelName);
}
@Override
public void onAuthenticationFailure(String message, Exception e) {
Log.v(TAG, "Private Channel onAuthenticationFailure: " + message + ":::" + e);
}
});下面是我试图在类Activity_InCall中调用的方法:
public static void dialogLaunch(String data){
Log.v(TAG, "Pusher:::" + data);
Intent activityDocSync = new Intent(context, Activity_DocSync.class);
context.startActivity(activityDocSync);
}下面是我看到的logcat错误,URL通过ok,然后给出"eventQueue“错误,然后进入空指针异常:
11-23 09:58:12.551 19108-19771/com.talkative.reach V/InCallActivity: Pusher:::URL
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: FATAL EXCEPTION: pusher-java-client eventQueue
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: Process: com.talkative.reach, PID: 19108
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at android.content.ComponentName.<init>(ComponentName.java:77)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at android.content.Intent.<init>(Intent.java:4160)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at com.talkative.reach.Activity_InCall.dialogLaunch(Activity_InCall.java:398)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at com.talkative.reach.Handler_PusherPrivate$2.onEvent(Handler_PusherPrivate.java:90)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at com.pusher.client.channel.impl.ChannelImpl$1.run(ChannelImpl.java:100)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-23 09:58:12.598 19108-19771/com.talkative.reach E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818)发布于 2015-11-23 12:30:04
eventQueue是发生异常的线程。
从堆栈跟踪来看,最后一段“用户土地”代码是com.talkative.reach.Activity_InCall.dialogLaunch(Activity_InCall.java:398)。
我要回答的几个问题是:
context在dialogLaunch中是一个静态访问对象吗?eventQueue库线程上访问它吗?请参阅runOnUiThreadhttps://stackoverflow.com/questions/33868308
复制相似问题