Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE on multidex #82

Closed
emce opened this issue Sep 14, 2015 · 5 comments
Closed

NPE on multidex #82

emce opened this issue Sep 14, 2015 · 5 comments

Comments

@emce
Copy link

emce commented Sep 14, 2015

I have my Application class extended by MultiDexApplication, and because of this, with my first activity I get NPE for any call for Hawk, probably caused by delay of creating multiple dex files (I think). Did you guys encounter such a situation?

09-14 14:42:23.848 5425-5425/com.myapp W/System.err: java.lang.NullPointerException 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.orhanobut.hawk.Hawk.get(Hawk.java:128) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.orhanobut.hawk.Hawk.get(Hawk.java:151) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.myapp.preference.Configuration.getBool(Configuration.java:62) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.myapp.activity.SplashActivity.onCreate(SplashActivity.java:58) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.Activity.performCreate(Activity.java:5008) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.access$600(ActivityThread.java:130) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.os.Looper.loop(Looper.java:137) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.myapp.App.startCatcher(App.java:100) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.myapp.App.onCreate(App.java:60) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.access$1300(ActivityThread.java:130) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.os.Looper.loop(Looper.java:137) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.main(ActivityThread.java:4745) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 09-14 14:42:23.852 5425-5425/com.myapp W/System.err: at dalvik.system.NativeStart.main(Native Method) 09-14 14:42:23.872 5425-5429/com.myapp D/dalvikvm: GC_CONCURRENT freed 396K, 12% free 8945K/10055K, paused 11ms+0ms, total 14ms 09-14 14:42:23.976 5425-5429/com.myapp D/dalvikvm: GC_CONCURRENT freed 310K, 10% free 9087K/10055K, paused 13ms+11ms, total 33ms 09-14 14:42:24.008 5425-5429/com.myapp D/dalvikvm: GC_CONCURRENT freed 306K, 9% free 9180K/10055K, paused 11ms+0ms, total 15ms 09-14 14:42:24.036 5425-5429/com.myapp D/dalvikvm: GC_CONCURRENT freed 354K, 10% free 9261K/10183K, paused 11ms+0ms, total 16ms 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.activity.SplashActivity}: java.lang.NullPointerException 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.access$600(ActivityThread.java:130) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.os.Looper.loop(Looper.java:137) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.myapp.App.startCatcher(App.java:100) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.myapp.App.onCreate(App.java:60) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.access$1300(ActivityThread.java:130) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.os.Looper.loop(Looper.java:137) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.main(ActivityThread.java:4745) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at dalvik.system.NativeStart.main(Native Method) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: Caused by: java.lang.NullPointerException 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.orhanobut.hawk.Hawk.get(Hawk.java:128) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.orhanobut.hawk.Hawk.get(Hawk.java:151) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.myapp.preference.Configuration.getString(Configuration.java:49) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.myapp.preference.Configuration.getAuthEmail(Configuration.java:121) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at com.myapp.activity.SplashActivity.onCreate(SplashActivity.java:76) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.Activity.performCreate(Activity.java:5008) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 09-14 14:42:24.040 5425-5425/com.myapp W/System.err: ... 19 more 09-14 14:42:24.052 5425-5425/com.myapp W/Hawk: key is generating without password 09-14 14:42:24.052 5425-5425/com.myapp W/Hawk: key is generated without password

@orhanobut
Copy link
Owner

How do you init Hawk? Could be something else

@emce
Copy link
Author

emce commented Sep 14, 2015

public void onCreate() {
        super.onCreate();
        Hawk.init(this)
            .setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM)
            .setStorage(HawkBuilder.newSharedPrefStorage(this))
            .setLogLevel(BuildConfig.DEBUG ? LogLevel.FULL : LogLevel.NONE)
            .setCallback(new HawkBuilder.Callback() {
                @Override
                public void onSuccess() {
                    Log.d(TAG, "Hawk initiated on App");
                }
                @Override
                public void onFail(Exception e) {
                    Log.d(TAG, "Hawk not initiated on App");
                }
            })
            .build();
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("Roboto/Roboto-Regular.ttf")
            .setFontAttrId(R.attr.fontPath)
            .build());
        Iconify
            .with(new IcomoonModule())
            .with(new FontAwesomeModule());
        if (!BuildConfig.DEBUG) {
            CrashlyticsFacade.initCrashlytics(this);
        }
        startCatcher();
    }

@orhanobut
Copy link
Owner

The issue seems that Hawk is called before initializing is actually finished due to callback. To make sure it can you remove callback line and try it? If the callback is required due to performance reason, we could find a better solution.

@emce
Copy link
Author

emce commented Sep 14, 2015

You were right - after removing callback I didn't get any NPE so far...

@orhanobut
Copy link
Owner

glad to hear that, closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants