我在Android应用程序中使用QuickBlox进行聊天。
[2014-09-22 12:32:48 - Dex Loader]无法执行dex:方法ID不在[0,0xffff]中:65536 [2014-09-22 12:32:48 - xxxx]转换为Dalvik格式失败:无法执行dex:方法ID不在[0,0xffff]中:65536
然后我被建议在应用程序中实现Proguard以删除所有不需要的应用程序方法。但是当我在我的Android设备中安装带有proguard的签名apk时,我遇到了这个问题,并且在登录QuickBlox时,应用程序被 Null Pointer Exception 崩溃。
09-22 12:43:50.875: E/AndroidRuntime(10513): FATAL EXCEPTION: main
09-22 12:43:50.875: E/AndroidRuntime(10513): Process: com.xxxx, PID: 10513
09-22 12:43:50.875: E/AndroidRuntime(10513): java.lang.NullPointerException
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.a.a(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.f.b(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.f.a(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.b.a(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.e.a(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.a.c.a(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.quickblox.b.a.h.d.handleMessage(Unknown Source)
09-22 12:43:50.875: E/AndroidRuntime(10513): at android.os.Handler.dispatchMessage(Handler.java:102)
09-22 12:43:50.875: E/AndroidRuntime(10513): at android.os.Looper.loop(Looper.java:136)
09-22 12:43:50.875: E/AndroidRuntime(10513): at android.app.ActivityThread.main(ActivityThread.java:5001)
09-22 12:43:50.875: E/AndroidRuntime(10513): at java.lang.reflect.Method.invokeNative(Native Method)
09-22 12:43:50.875: E/AndroidRuntime(10513): at java.lang.reflect.Method.invoke(Method.java:515)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
09-22 12:43:50.875: E/AndroidRuntime(10513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
09-22 12:43:50.875: E/AndroidRuntime(10513): at dalvik.system.NativeStart.main(Native Method)
我只是整合Proguard的Newbee,但我发现只有当我编写QuickBlox的日志记录模块的代码时才会出现这种情况。
答案 0 :(得分:1)
我解决了这个问题。实际上这是我身边的错误。我从Android端忘记了QuickBlox中的CreateSession。:
QBSettings.getInstance().fastConfigInit(APP_ID, AUTH_KEY, AUTH_SECRET);
QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
super.onSuccess(session, params);
Log.i(com.hyperchat.Consts.TAG, "session created, token = "
+ session.getToken());
}
@Override
public void onError(List<String> errors) {
}
});
执行此操作后,错误消失,应用程序运行得很快!!