Java 使用volley库的my image loader函数出现空指针异常
我正在尝试将图像下载并加载到android应用程序中的NetworkImageView中。。但我得到了这个错误 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.android.volley.toolbox.ImageLoader com.example.username.socialoid.AppController.getImageLoader()” 不知道发生了什么事。通常,空指针是由于声明错误而发生的,但我在这里没有犯错误。。请帮忙 这是我的代码Java 使用volley库的my image loader函数出现空指针异常,java,android,android-volley,Java,Android,Android Volley,我正在尝试将图像下载并加载到android应用程序中的NetworkImageView中。。但我得到了这个错误 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.android.volley.toolbox.ImageLoader com.example.username.socialoid.AppController.getImageLoader()” 不知道发生了什么事。通常,空指针是由于声明错误而发生的,但我在这里没有犯错误。。请帮
// user profile pic
profilePic.setImageUrl(item.getProfilePic(), imageLoader);
imageloader在另一个类中,如下所示
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
public ImageLoader getImageLoader() {
getRequestQueue();
if (mImageLoader == null) {
getLruBitmapCache();
mImageLoader = new ImageLoader(this.mRequestQueue, mLruBitmapCache);
}
return this.mImageLoader;
}
我的LRubitMacache课程
import com.android.volley.toolbox.ImageLoader.ImageCache;
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;
public class LruBitmapCache extends LruCache<String, Bitmap> implements
ImageCache {
public static int getDefaultLruCacheSize() {
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
final int cacheSize = maxMemory / 8;
return cacheSize;
}
public LruBitmapCache() {
this(getDefaultLruCacheSize());
}
public LruBitmapCache(int sizeInKiloBytes) {
super(sizeInKiloBytes);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight() / 1024;
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}
}
import com.android.volley.toolbox.ImageLoader.ImageCache;
导入android.graphics.Bitmap;
导入android.support.v4.util.LruCache;
公共类LruBitmapCache扩展了LruCache实现
图像缓存{
公共静态int getDefaultLruCacheSize(){
final int maxMemory=(int)(Runtime.getRuntime().maxMemory()/1024);
最终int cacheSize=maxMemory/8;
返回缓存大小;
}
公共LRubitMacache(){
这个(getDefaultLruCacheSize());
}
公共lrubitMacache(int-sizeInKiloBytes){
超级(sizeInKiloBytes);
}
@凌驾
受保护的int-sizeOf(字符串键、位图值){
返回值.getRowBytes()*value.getHeight()/1024;
}
@凌驾
公共位图getBitmap(字符串url){
返回get(url);
}
@凌驾
公共位图(字符串url、位图){
put(url、位图);
}
}
完整日志::
11-30 15:35:39.635 27827-27827/com.example.hissamyousaf.socialoid E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.hissamyousaf.socialoid, PID: 27827
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hissamyousaf.socialoid/com.example.hissamyousaf.socialoid.Home}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hissamyousaf.socialoid/com.example.hissamyousaf.socialoid.NewsFeed}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.android.volley.toolbox.ImageLoader com.example.hissamyousaf.socialoid.AppController.getImageLoader()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hissamyousaf.socialoid/com.example.hissamyousaf.socialoid.NewsFeed}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.android.volley.toolbox.ImageLoader com.example.hissamyousaf.socialoid.AppController.getImageLoader()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
at android.app.ActivityThread.startActivityNow(ActivityThread.java:2435)
at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:776)
at android.widget.TabHost.setCurrentTab(TabHost.java:435)
at android.widget.TabHost.addTab(TabHost.java:262)
at com.example.hissamyousaf.socialoid.Home.onCreate(Home.java:42)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.android.volley.toolbox.ImageLoader com.example.hissamyousaf.socialoid.AppController.getImageLoader()' on a null object reference
at com.example.hissamyousaf.socialoid.FeedListAdapter.<init>(FeedListAdapter.java:28)
at com.example.hissamyousaf.socialoid.NewsFeed.onCreate(NewsFeed.java:43)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.startActivityNow(ActivityThread.java:2435)
at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:776)
at android.widget.TabHost.setCurrentTab(TabHost.java:435)
at android.widget.TabHost.addTab(TabHost.java:262)
at com.example.hissamyousaf.socialoid.Home.onCreate(Home.java:42)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
11-30 15:35:39.635 27827-27827/com.example.hissamyousaf.socialoid E/AndroidRuntime﹕ 致命异常:主
进程:com.example.hissamyousaf.socialoid,PID:27827
java.lang.RuntimeException:无法启动活动组件信息{com.example.hissamyosaf.socialoid/com.example.hissamyosaf.socialoid.Home}:java.lang.RuntimeException:无法启动活动组件信息{com.example.hissamyosaf.socialoid/com.example.hissamyosaf.socialoid.NewsFeed}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.android.volley.toolbox.ImageLoader com.example.hissamyousaf.socialoid.AppController.getImageLoader()”
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)上
在android.app.ActivityThread.access$900(ActivityThread.java:177)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:145)
位于android.app.ActivityThread.main(ActivityThread.java:5942)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
原因:java.lang.RuntimeException:无法启动活动组件信息{com.example.hissamyousaf.socialoid/com.example.hissamyousaf.socialoid.NewsFeed}:java.lang.NullPointerException:尝试调用虚拟方法'com.android.volley.toolbox.ImageLoader.com.example.hissamyousaf.socialoid.AppController.getImageLoader()'在空对象引用上
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)上
位于android.app.ActivityThread.startActivityNow(ActivityThread.java:2435)
在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)上
在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)上
位于android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:776)
位于android.widget.TabHost.setCurrentTab(TabHost.java:435)
位于android.widget.TabHost.addTab(TabHost.java:262)
在com.example.hissamyousaf.socialoid.Home.onCreate(Home.java:42)上
位于android.app.Activity.performCreate(Activity.java:6289)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)上
在android.app.ActivityThread.access$900(ActivityThread.java:177)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:145)
位于android.app.ActivityThread.main(ActivityThread.java:5942)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'com.android.volley.toolbox.ImageLoader.com.example.hissamyousaf.socialoid.AppController.getImageLoader()'
位于com.example.hissamyousaf.socialoid.FeedListAdapter.(FeedListAdapter.java:28)
在com.example.hissamyousaf.socialoid.NewsFeed.onCreate(NewsFeed.java:43)上
位于android.app.Activity.performCreate(Activity.java:6289)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)上
位于android.app.ActivityThread.startActivityNow(ActivityThread.java:2435)
在android.app.LocalActivityManager.moveToState(LocalActivityManager.ja