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

java.lang.NullPointerException in StorageUtils.getCacheDirectory #660

Closed
DenBond7 opened this issue Jun 20, 2014 · 3 comments
Closed

java.lang.NullPointerException in StorageUtils.getCacheDirectory #660

DenBond7 opened this issue Jun 20, 2014 · 3 comments
Labels

Comments

@DenBond7
Copy link

Hello. I received an error log from my user.

java.lang.RuntimeException: Unable to create application my.CustomApplication: java.lang.NullPointerException
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4584)
at android.app.ActivityThread.access$1600(ActivityThread.java:161)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1325)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException
at android.os.Environment.getStorageState(Environment.java:715)
at android.os.Environment.getExternalStorageState(Environment.java:690)
at com.nostra13.universalimageloader.utils.getCacheDirectory(SourceFile:68)
at my.CustomApplication.onCreate(SourceFile:97)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4581)
... 10 more

Device specifications:
Model SCH-I545
Android 4.2.2

My line №97

File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext());
@nostra13
Copy link
Owner

Hello. Which UIL version?

@DenBond7
Copy link
Author

I am using sources. My submodule Android-Universal-Image-Loader link to cfd8fa982243

@koral--
Copy link

koral-- commented Jun 25, 2014

I have similar report from user (Device: Samsung GT-I9300, Android 4.3), UIL v 1.9.1.
Most interesting part of a stacktrace:

at android.os.Environment.getExternalStorageState(Environment.java:598)
at com.nostra13.universalimageloader.utils.StorageUtils.java.io.File getCacheDirectory(android.content.Context,boolean)(SourceFile:68)
at com.nostra13.universalimageloader.core.ImageLoaderConfiguration$Builder.com.nostra13.universalimageloader.core.ImageLoaderConfiguration build()(SourceFile:545)

I dug into sources of Environment.getExternalStorageState on GrepCode
Looks like it can produce NPE if Exception is thrown in lines 66-69 or StorageManager#getPrimaryVolume() returns null.
The dirty workaround is to catch NPE and assume that external storage is not mounted if it is thrown.

@nostra13 nostra13 added the Bug label Jul 8, 2014
@nostra13 nostra13 closed this as completed Jul 9, 2014
TobySegar added a commit to TobySegar/unity-ads-android that referenced this issue Jan 14, 2017
nostra13/Android-Universal-Image-Loader#660

wn
Exception java.lang.NullPointerException:
android.os.Environment.getStorageState (Environment.java:858)
android.app.ContextImpl.getExternalCacheDir (ContextImpl.java:931)
android.content.ContextWrapper.getExternalCacheDir (ContextWrapper.java:235)
com.unity3d.ads.cache.CacheDirectory.getCacheDirectory (SourceFile:32)
com.unity3d.ads.properties.SdkProperties.getCacheDirectory (SourceFile:102)
com.unity3d.ads.properties.SdkProperties.getCacheDirectory (SourceFile:94)
com.unity3d.ads.configuration.EnvironmentCheck.testCacheDirectory (SourceFile:44)
com.unity3d.ads.configuration.EnvironmentCheck.isEnvironmentOk (SourceFile:14)
com.unity3d.ads.UnityAds.initialize (SourceFile:143)
com.unity3d.ads.UnityAds.initialize (SourceFile:94)
com.mopub.ads.Interstitial$2.run (SourceFile:361)
android.os.Handler.handleCallback (Handler.java:733)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:136)
android.app.ActivityThread.main (ActivityThread.java:5372)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:970)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:786)
dalvik.system.NativeStart.main (NativeStart.java)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants