몇시간전에 질문 올렸던 사람입니다.


결국 폴더로 구분하여 넣는 것은 포기하고, 사람마다 파일명을 일괄 바꿔서 "이니셜_image_1.jpg" 와 같은 형식을 사용하고 있습니다.


그러다가 어느 순간부터 NullPointerException이 발생하였습니다.


로그캣을 뒤져보니


제가 GridView Adapter로 사용하고 있는 클래스에서 오류가 발생했더군요.


ImageGridAdapter.java의 내용입니다.


package com.finaltest;


import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Bitmap.Config;

import android.graphics.BitmapFactory;

import android.graphics.BitmapFactory.Options;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView; 

 

public class ImageGridAdapter extends BaseAdapter {

    

    Context context = null;

    Bitmap bmp = null;

    Options bf = new BitmapFactory.Options();

    int[] imageIDs = new int[20];

    

    public ImageGridAdapter(Context context, int[] imageIDs) {

        this.context = context;

        this.imageIDs = imageIDs;

    } 

    @Override

public int getCount() {

        return (null != imageIDs) ? imageIDs.length : 0;

    } 

    @Override

public Object getItem(int position) {

        return (null != imageIDs) ? imageIDs[position] : 0;

    } 

    @Override

public long getItemId(int position) {

        return position;

    } 

    @Override

public View getView(int position, View convertView, ViewGroup parent) {

        ImageView imageView = null;

        

        if (null != convertView)

            imageView = (ImageView)convertView;

        else {

            bf.inSampleSize = 4;

            bf.inPurgeable = true;

            bf.inPreferredConfig = Config.RGB_565;

            bmp = BitmapFactory.decodeResource(context.getResources(), imageIDs[position], bf);

            bmp = Bitmap.createScaledBitmap(bmp, 320, 240, false); << 여기서  NullPointerException 에러 발생.

            

            imageView = new ImageView(context);

            imageView.setAdjustViewBounds(true); 

            imageView.setImageBitmap(bmp);

            

            ImageClickListener imageViewClickListener

                = new ImageClickListener(context, imageIDs[position]);

            imageView.setOnClickListener(imageViewClickListener);

        }

        return imageView;

    }

}

현재 GridView를 띄우는 자바파일과 Main입니다.

Main에서 ExpandListView 아이템을 가져와서 Grid_image에 누구인지 확인하고 그림파일들을 비교하여 GridView로 출력시키는 것이 목적입니다.


한번 확인해보시고 어디가 잘못 되었는지 알려주시면 감사하겠습니다.

아래는 로그캣 정보입니다.

12-03 11:44:05.006: E/AndroidRuntime(5623): FATAL EXCEPTION: main
12-03 11:44:05.006: E/AndroidRuntime(5623): java.lang.NullPointerException
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:461)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.finaltest.ImageGridAdapter.getView(ImageGridAdapter.java:47)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.AbsListView.obtainView(AbsListView.java:2461)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.makeAndAddView(GridView.java:1331)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.makeRow(GridView.java:331)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.fillDown(GridView.java:283)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.fillFromTop(GridView.java:407)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.layoutChildren(GridView.java:1219)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.AbsListView.onLayout(AbsListView.java:2296)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1998)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1819)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1116)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4533)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer.doFrame(Choreographer.java:525)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Handler.handleCallback(Handler.java:615)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Handler.dispatchMessage(Handler.java:92)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Looper.loop(Looper.java:137)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.app.ActivityThread.main(ActivityThread.java:4943)
12-03 11:44:05.006: E/AndroidRuntime(5623): at java.lang.reflect.Method.invokeNative(Native Method)
12-03 11:44:05.006: E/AndroidRuntime(5623): at java.lang.reflect.Method.invoke(Method.java:511)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
12-03 11:44:05.006: E/AndroidRuntime(5623): at dalvik.system.NativeStart.main(Native Method)