Search code examples
androidnullpointerexceptionproguardquickblox

Integrating quickblox with Proguard in android


I am using QuickBlox in my Android application for chatting purpose.

[2014-09-22 12:32:48 - Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536 [2014-09-22 12:32:48 - xxxx] Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

So then I was adviced to implement Proguard in the app to remove all unnecessary methods that are unwanted to application. But when I was installing signed apk with proguard integrated in my android device, I was facing this issue and app gets crashed with Null Pointer Exception while logging into QuickBlox.

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)

I am just a Newbee at integrating Proguard, but I found that this only comes when I write the code for logging module of QuickBlox.


Solution

  • I solved this problem. Actually it was an error from my side. I forgot to CreateSession in QuickBlox from Android side.:

    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) {
    
            }
        });
    

    After implementing this, the error vanishes and app runs smmothly !!