Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试在适配器中使用图像时出现空点异常?_Android - Fatal编程技术网

Android 尝试在适配器中使用图像时出现空点异常?

Android 尝试在适配器中使用图像时出现空点异常?,android,Android,我有一个类ArtistResourceImageAdapter,它扩展了ArtistCoverFlowAdapter 我得到一个空点异常 在其中一个字符串中(应该包含图像的路径) 字符串是“res” 当我在构造函数中进行检查时,它似乎不为null(我使用logcat进行了检查) 但是在这个方法中它似乎是空的 @override protected Bitmap createBitmap( int position) { if(res[position]==null) ...

我有一个类ArtistResourceImageAdapter,它扩展了ArtistCoverFlowAdapter 我得到一个空点异常 在其中一个字符串中(应该包含图像的路径) 字符串是“res” 当我在构造函数中进行检查时,它似乎不为null(我使用logcat进行了检查) 但是在这个方法中它似乎是空的

@override 
protected Bitmap createBitmap(  int position) {
 if(res[position]==null)
        ..........
..............
..................          
}
现在,方法createBitmap已在ArtistResourceImageAdapter中被重写,并在类ArtistCoverFlowAdapter中声明

ArtistResourceImageAdapter的代码是(此代码中的最后一个方法(createBitmap)是获取字符串的空点异常的地方)

package source.justanothermusicplayer.coverflw;
导入java.io.File;
导入java.lang.ref.WeakReference;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入source.justanothermusicplayer.R;
导入source.justanothermusicplayer.R.drawable;
导入android.content.Context;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.graphics.drawable.BitmapDrawable;
导入android.util.Log;
导入android.util.TypedValue;
/**
*此类是一个适配器,它提供来自固定资源集的映像
*身份证。位图和图像视图作为弱引用保留,以便
*不需要时由垃圾收集清除。
* 
*/
公共类ArtistResourceImageAdapter扩展了ArtistCoverFlowAdapter{
/**常量标记*/
私有静态最终字符串标记=ArtistResourceImageAdapter.class.getSimpleName();
浮动ht_px;浮动wt_px;
/**恒定的默认列表大小*/
私有静态最终整数默认列表大小=40;
/**恒定的图像资源ID*/
私有静态最终列表图像\u资源\u ID=新的ArrayList(默认\u列表\u大小);
/**常量默认资源列表*/
字符串[]res=新字符串[20];
/**位图映射*/
私有最终映射bitmapMap=新HashMap();
私人最终语境;
/**
*使用默认的资源映像集创建适配器。
* 
*@param上下文
*上下文
*/
公共ArtistResourceImageAdapter(最终上下文上下文,字符串[]资源){
超级();
this.context=上下文;
ht_px=TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,130,context.getResources().getDisplayMetrics());
wt_px=TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,115,context.getResources().getDisplayMetrics());
资源组(资源组);
}
公共最终同步的void setResources(字符串[]资源){
IMAGE_RESOURCE_id.clear();res=resources;

对于(int Id=1;Id,在res[position]returns null的情况下看起来是这样的,您将继续处理代码的其余部分,我相信这就是在您使用该null值来处理其余逻辑时为您提供null指针的原因。 尝试为条件检查添加括号并返回null。使用createBitmap的方法需要处理null位图,因为它不可用

protected Bitmap createBitmap(  int position) {
    Log.v(TAG, "creating item " + position);
    String url=new String();
    if(res[position]==null) {
        Log.i("holalala  jhingallaa ", "res[position] is null");
        return null;
    }
    url=res[position];
    File f=new File(url);
    Bitmap  b = BitmapFactory.decodeFile(url);
    b = Bitmap.createScaledBitmap(b, (int) ht_px, (int) wt_px, true);
    bitmapMap.put(position, new WeakReference<Bitmap>(b));
    return b;
}
受保护位图创建位图(int位置){
Log.v(标签,“创建项目”+位置);
字符串url=新字符串();
if(res[position]==null){
Log.i(“holalala jhingallaa”,“res[位置]为空”);
返回null;
}
url=res[position];
文件f=新文件(url);
位图b=BitmapFactory.decodeFile(url);
b=位图。createScaledBitmap(b,(int)ht_px,(int)wt_px,true);
放置(位置,新WeakReference(b));
返回b;
}

第99行是b=位图。createScaledBitmap(b,(int)ht_px,(int)wt_px,true);在上一种方法中,好的,我想我知道了,首先你定义了res最多容纳20个itmes,检查position的值,确定你正在尝试访问索引20+,这就是为什么你收到这个error@Techfist不,我不这么认为……即使我增加了它的尺寸,它也没有help@AnkitSrivastavares数组在哪里填充?@Techfist我已经编辑了上面的评论。我指出了错误的行号
12-12 14:16:58.876: E/AndroidRuntime(24293): FATAL EXCEPTION: main
12-12 14:16:58.876: E/AndroidRuntime(24293): java.lang.NullPointerException
12-12 14:16:58.876: E/AndroidRuntime(24293):    at java.io.File.fixSlashes(File.java:185)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at java.io.File.<init>(File.java:134)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistResourceImageAdapter.createBitmap(ArtistResourceImageAdapter.java:99)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistCoverFlowAdapter.getItem(ArtistCoverFlowAdapter.java:73)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistReflectingAdapter.createBitmap(ArtistReflectingAdapter.java:79)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistCoverFlowAdapter.getItem(ArtistCoverFlowAdapter.java:73)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistReflectingAdapter.createBitmap(ArtistReflectingAdapter.java:79)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistCoverFlowAdapter.getItem(ArtistCoverFlowAdapter.java:73)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistCoverFlowAdapter.getView(ArtistCoverFlowAdapter.java:117)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at source.justanothermusicplayer.coverflw.ArtistCoverFlowAdapter.getView(ArtistCoverFlowAdapter.java:1)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:193)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.View.measure(View.java:15401)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4950)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1426)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:703)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:578)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.View.measure(View.java:15401)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4950)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:314)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.View.measure(View.java:15401)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:855)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:578)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.View.measure(View.java:15401)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4950)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:314)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2154)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.View.measure(View.java:15401)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1856)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1279)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1002)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4294)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.Choreographer.doFrame(Choreographer.java:525)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.os.Handler.handleCallback(Handler.java:643)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.os.Handler.dispatchMessage(Handler.java:92)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.os.Looper.loop(Looper.java:137)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at android.app.ActivityThread.main(ActivityThread.java:4803)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at java.lang.reflect.Method.invokeNative(Native Method)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at java.lang.reflect.Method.invoke(Method.java:511)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
12-12 14:16:58.876: E/AndroidRuntime(24293):    at dalvik.system.NativeStart.main(Native Method)
protected Bitmap createBitmap(  int position) {
    Log.v(TAG, "creating item " + position);
    String url=new String();
    if(res[position]==null) {
        Log.i("holalala  jhingallaa ", "res[position] is null");
        return null;
    }
    url=res[position];
    File f=new File(url);
    Bitmap  b = BitmapFactory.decodeFile(url);
    b = Bitmap.createScaledBitmap(b, (int) ht_px, (int) wt_px, true);
    bitmapMap.put(position, new WeakReference<Bitmap>(b));
    return b;
}