안녕하십니까 초보개발자입니다.


다름이 아니라 현재 제가 개인적으로 PDF뷰어를 개발하고 있는데요.

해당 뷰어에 대해서 런타임 에러가 발생하고 있어서 문의드립니다.


코드에서 보시다시피 ListView를 이용하여 섬네일 리스트를 만들었고 버튼을 누를때마다 섬네일 리스트가 화면에

나타나서 임의 섬네일을 선택하면 본화면에 해당 화면이 뜨도록 설정했습니다.

그런데 빨간색 표시되어있는 부분이 호출될 시 (리스트가 호출될 시)

런타임에러와 함께 프로그램이 종료되거나 초기화됩니다.

만일 해당 구문을 주석처리하면 빈 ListView가 나타나고 대신 런타임 에러없이 잘 동작합니다.

로그와 코드는 하기와 같습니다. 관심있으신 고수 분님들께서는 답변주시면 정말 감사하겠습니다.

그럼 즐거운 밤 되세요^^


(로그)

---------------------------------------------------------------------------------------------

........

10-30 21:36:57.101: W/ActivityManager(216): Launch timeout has expired, giving up wake lock!

10-30 21:36:57.171: W/ActivityManager(216): Activity idle timeout for ActivityRecord{42193ef8 com.sec.automotive.gcp.driveexperience/com.infraware.pdf.lib.PDFLibRenderActivity}

10-30 21:36:59.773: V/WindowOrientationListener(216): nearestRotation : 0   Angle: 0   tilt: 12

10-30 21:36:59.992: E/AlarmManagerService(216): android_server_AlarmManagerService_set to type=3, 27850.385000000

10-30 21:36:59.992: V/AlarmManager(216): ClockReceiver onReceive() ACTION_TIME_TICK

10-30 21:37:00.000: D/KeyguardUpdateMonitor(216): received broadcast android.intent.action.TIME_TICK

10-30 21:37:00.000: D/KeyguardUpdateMonitor(216): handleTimeUpdate

10-30 21:37:00.000: D/STATUSBAR-Clock(295): onReceive() - ACTION_TIME_TICK

10-30 21:37:00.007: D/STATUSBAR-Clock(295): updateClock :오후 9:37

10-30 21:37:00.046: D/STATUSBAR-Clock(295): onReceive() - ACTION_TIME_TICK

10-30 21:37:00.054: D/STATUSBAR-Clock(295): updateClock :오후 9:37

10-30 21:37:00.070: E/ClockWidgetService(18444): onReceive

10-30 21:37:00.070: E/ClockWidgetProvider(18444): updateWidgets

10-30 21:37:01.414: D/VoldCmdListener(95): asec list

10-30 21:37:01.414: D/VoldCmdListener(95): CommandListener::AsecCmd::runCommand -> -- 

10-30 21:37:02.476: I/dumpstate(18731): done

10-30 21:37:02.570: I/ActivityManager(216): Process com.sec.automotive.gcp.driveexperience (pid 18661) has died.

10-30 21:37:02.570: I/WindowManager(216): WIN DEATH: Window{41fbf868  ***  paused=false}

10-30 21:37:02.570: W/ActivityManager(216): Scheduling restart of crashed service com.sec.automotive.gcp.driveexperience/com.sec.automotive.gcp.core.update.AppUpdateService in 5000ms

10-30 21:37:02.578: D/KeyguardViewMediator(216): setHidden false

10-30 21:37:02.578: D/KeyguardViewMediator(216): setHidden false

10-30 21:37:02.578: D/KeyguardViewMediator(216): setHidden false

10-30 21:37:02.578: D/InputDispatcher(216): [drainOutboundQueueLocked] initialize cntPair(sender-receiver)

10-30 21:37:02.578: I/InputDispatcher(216): Delivering touch to current input target: action: 0x1

10-30 21:37:02.578: D/KeyguardViewMediator(216): setHidden false

10-30 21:37:02.578: W/ActivityManager(216): Force removing ActivityRecord{42193ef8 com.sec.automotive.gcp.driveexperience/com.infraware.pdf.lib.PDFLibRenderActivity}: app died, no saved state

10-30 21:37:02.578: I/WindowManager(216): WIN DEATH: Window{420a2b50  ***  paused=false}

10-30 21:37:02.578: W/WindowManager(216): Force-removing child win Window{41f19e98  ***  paused=false} from container Window{420a2b50  ***  paused=false}

10-30 21:37:02.578: I/WindowManager(216): WIN DEATH: Window{42059e70  ***  paused=false}

10-30 21:37:02.585: E/lights(216): write_int failed to open /sys/class/sec/sec_touchkey/brightness

10-30 21:37:02.585: I/InputDispatcher(216): Delivering touch to current input target: action: 0x0

10-30 21:37:02.585: E/lights(216): write_int failed to open /sys/class/sec/sec_touchkey/brightness

10-30 21:37:02.585: I/InputDispatcher(216): Delivering touch to current input target: action: 0x1

10-30 21:37:02.585: I/InputDispatcher(216): Delivering touch to current input target: action: 0x0

10-30 21:37:02.585: I/InputDispatcher(216): Delivering touch to current input target: action: 0x1

10-30 21:37:02.585: I/power(216): *** acquire_dvfs_lock : lockType : 1  freq : 1008000 

10-30 21:37:02.585: I/PowerManagerService(216): Ulight 3->7|0

10-30 21:37:02.585: D/PowerManagerService(216): setLightBrightness : mButtonLight : 255

10-30 21:37:02.585: W/PowerManagerService(216): Timer 0x7->0x3|0x0

10-30 21:37:02.585: I/PowerManagerService(216): Ulight 7->3|0

10-30 21:37:02.585: D/PowerManagerService(216): setLightBrightness : mButtonLight : 0

10-30 21:37:02.585: W/WindowManager(216): Failed looking up window

10-30 21:37:02.585: W/WindowManager(216): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@41f19ce0 does not exist

10-30 21:37:02.585: W/WindowManager(216): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7734)

10-30 21:37:02.585: W/WindowManager(216): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7725)

10-30 21:37:02.585: W/WindowManager(216): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1579)

10-30 21:37:02.585: W/WindowManager(216): at android.os.BinderProxy.sendDeathNotice(Binder.java:417)

10-30 21:37:02.585: W/WindowManager(216): at com.android.server.SystemServer.init1(Native Method)

10-30 21:37:02.585: W/WindowManager(216): at com.android.server.SystemServer.main(SystemServer.java:991)

10-30 21:37:02.585: W/WindowManager(216): at java.lang.reflect.Method.invokeNative(Native Method)

10-30 21:37:02.585: W/WindowManager(216): at java.lang.reflect.Method.invoke(Method.java:511)

10-30 21:37:02.585: W/WindowManager(216): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)

10-30 21:37:02.585: W/WindowManager(216): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

10-30 21:37:02.585: W/WindowManager(216): at dalvik.system.NativeStart.main(Native Method)

10-30 21:37:02.585: I/WindowManager(216): WIN DEATH: null

10-30 21:37:02.585: W/ActivityManager(216): Force removing ActivityRecord{42074248 com.sec.automotive.gcp.driveexperience/com.sec.automotive.gcp.smartpromotion.view.maincar.MainCarActivity}: app died, no saved state

10-30 21:37:02.585: D/PowerManagerService(216): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT  frequency : 1008000  uid : 1000  pid : 216  tag : ActivityManager

10-30 21:37:02.585: W/ActivityManager(216): mDVFSLock.acquire()

10-30 21:37:02.601: D/dalvikvm(18766): Late-enabling CheckJNI

10-30 21:37:02.617: I/ActivityManager(216): Start proc app.processName for activity hostingNameStr: pid=18766 uid=10122 gids={3003, 1015, 1023}

........

---------------------------------------------------------------------------------------------



(코드)

---------------------------------------------------------------------------------------------

........

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

.......


listView = (ListView) findViewById(R.id.test_thumb2);

popup.setVisibility(View.GONE);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

......

if(key==0){

mHandler.postDelayed(new Runnable(){

@Override

public void run() {

// TODO Auto-generated method stub

key=1;

listView.setAdapter(new ListAdapter("해당Activity".this, pdfLib));

......

}

}, 1);

renderView.setVisibility(View.VISIBLE);

popup.setVisibility(View.VISIBLE);


setVisible(listView);


listView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position, long id) {

...........

}

});

}

else if(key==1){

...........

popup.setVisibility(View.GONE);

}

}

});

..................

..................


private class ListAdapter extends BaseAdapter {

private Context ctx;

private PDFLib pdfLib;

private View[] views;

private ImageView[] imageViews;

private TextView[] textViews;


public ListAdapter(Context ctx, PDFLib pdfLib) {

this.ctx = ctx;

this.pdfLib = pdfLib;

views = new View[totalPages];

imageViews = new ImageView[totalPages];

textViews = new TextView[totalPages];

}


@Override

public int getCount() {

return totalPages;

}


@Override

public Object getItem(int position) {

return position;

}


@Override

public long getItemId(int position) {

return position;

}


@Override

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

LayoutInflater inflater = getLayoutInflater();

View view = inflater.inflate(R.layout.list_item, null);


if (views[position] == null) {

TextView textView = (TextView)view.findViewById(R.id.list_text);

textView.setText(Integer.toString(position+1));

textViews[position] = textView;


ImageView imageView = (ImageView)view.findViewById(R.id.list_image);

Bitmap bitmap = pdfLib.getBitmap(position+1, 150, 150);

imageView.setImageBitmap(bitmap);

imageView.setPadding(0, 0, 0, 15);

imageViews[position] = imageView;


views[position] = view;

}

return views[position];

}

}


---------------------------------------------------------------------------------------------