서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

NDK 초반에 pluscalc 어플을 따라 만들었습니다.

그런데 setOnClickListener 에서 문제가 발생합니다.

이녀석만 없으면 실행은 잘 되고,, 이녀석이 있으면 어플 실행 도중에 강제종료 되고요.

우선 API 19 android 4.4 으로 만들었고요

버전 문제인줄 알았는데 핸드폰 버전에 맞춰서 해도 setOnClickListener 에서 문제가 발생합니다.


우선 밑의 소스는 pluscalcActivity.java  이고..


package com.example.pluscalc;


import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v7.app.ActionBarActivity;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.EditText;

import android.widget.TextView;



public class PluscalcActivity extends ActionBarActivity implements View.OnClickListener{


TextView tv;

EditText etFirst;

EditText etSecond;

plusForJNI pfj;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_pluscalc);

//setContentView(R.layout.fragment_pluscalc);

tv = (TextView)findViewById(R.id.result);

etFirst = (EditText)findViewById(R.id.firstfield);

etSecond = (EditText)findViewById(R.id.secondfield);

pfj = new plusForJNI();

View btn;

btn = findViewById(R.id.Button01);

btn.setOnClickListener(this);


if (savedInstanceState == null) {

getSupportFragmentManager().beginTransaction()

.add(R.id.container, new PlaceholderFragment()).commit();

}

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {


// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.pluscalc, menu);

return true;

}


@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

public void onClick(View v)

{

String first = etFirst.getText().toString();

String second = etSecond.getText().toString();

int aa = Integer.decode(first);

int bb = Integer.decode(second);

tv.setText("" + pfj.addCalc(aa, bb));

}


/**

* A placeholder fragment containing a simple view.

*/

public static class PlaceholderFragment extends Fragment {


public PlaceholderFragment() {

}


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_pluscalc,

container, false);

return rootView;

}

}


}

이건 로그캣에 뜬 내용들 입니다...

 W/dalvikvm(28478): threadid=1: thread exiting with uncaught exception (group=0x4142c2a0)

 E/AndroidRuntime(28478): FATAL EXCEPTION: main

 E/AndroidRuntime(28478): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pluscalc/com.example.pluscalc.PluscalcActivity}: java.lang.NullPointerException

 E/AndroidRuntime(28478): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)

E/AndroidRuntime(28478): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)

E/AndroidRuntime(28478): at android.app.ActivityThread.access$700(ActivityThread.java:140)

E/AndroidRuntime(28478): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)

 E/AndroidRuntime(28478): at android.os.Handler.dispatchMessage(Handler.java:99)

 E/AndroidRuntime(28478): at android.os.Looper.loop(Looper.java:137)

 E/AndroidRuntime(28478): at android.app.ActivityThread.main(ActivityThread.java:4921)

E/AndroidRuntime(28478): at java.lang.reflect.Method.invokeNative(Native Method)

 E/AndroidRuntime(28478): at java.lang.reflect.Method.invoke(Method.java:511)

 E/AndroidRuntime(28478): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)

E/AndroidRuntime(28478): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

E/AndroidRuntime(28478): at dalvik.system.NativeStart.main(Native Method)

 E/AndroidRuntime(28478): Caused by: java.lang.NullPointerException

 E/AndroidRuntime(28478): at com.example.pluscalc.PluscalcActivity.onCreate(PluscalcActivity.java:36)

 E/AndroidRuntime(28478): at android.app.Activity.performCreate(Activity.java:5206)

 E/AndroidRuntime(28478): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)

 E/AndroidRuntime(28478): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)

E/AndroidRuntime(28478): ... 11 more


로그캣 봐도 잘 모르겠고.. 디버깅 해도 왜 여기서 멈추는 지도 모르겠습니다..

NullPointerException 이발생하다는건 알겠는데 왜 이런 오류가 발생하는지 ...

핸드폰 문제인가 아니면... 코드가 문제인지..제가 실수로 잘 못 입력했다는지..

혹시 해서 그냥 버튼만 만들어도 setOnClickListener 에서 문제가 발생하는데요. 

최신 버전에서의 차이 때문일까요?





전호철

2014.04.05 20:16:23
*.86.236.164

btn을 Button으로 define하시고 findviewbyid에서 나온것을 Button으로 캐스팅해서 넣으세요

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
103 [Linux와 Android] 001 - 임베디드 시스템에 대하여 file 고도리 2011-06-21 9496
102 [Linux와 Android] 002 - UNIX/Linux system 개요 file 고도리 2011-06-22 8626
101 [Linux와 Android] 002 - UNIX/Linux system 개요(Continue...... 고도리 2011-07-02 8573
100 안드로이드의 모든것 분석과 포팅 교재 관련 [2] nexus26 2011-07-05 10588
99 안드로이드 init의 특징에 대해 질문있습니다. [2] 얼사마 2011-07-12 9024
98 책 관련해서 질문이 있습니다. [1] winpih 2011-07-13 9036
97 475페이지 그림 외 건의 사항.. [2] 장병남 2011-07-22 8635
96 p186. Gingerbread 센서 구조의 간략한 설명 요청드립니다. [3] forone 2011-08-25 8432
95 117쪽 ueventd 실행 부분.. [1] 홍순민 2011-08-30 8855
94 개발환경 설정 중 문의사항입니다. file [1] 정바타 2011-10-14 7907
93 chapter7 안드로이드 오디오 서브시스템 에서 궁금한게 있습니다 [1] 가쓰비 2011-12-16 8017
92 책이 나온내용이지만 좀 다른예기일수도 잇네요 [1] 가쓰비 2011-12-21 7578
91 RGB 부분에 대해서 질문이 있습니다. [1] ys2cdh 2012-01-05 7382
90 261페이지 맨 아랫줄에 대해 문의드립니다. [2] binch 2012-07-18 5747
89 책을 보다 몇가지 질문이 생겼습니다. [6] 더페이퍼 2012-09-18 5527
88 JNI로 휴대폰 디바이스 번호를 구하려고 합니다 file [3] fox8306 2012-09-19 6884
87 NDK 개발 환경 설정하기에서 문제입니다. file [2] 프리월드 2012-09-19 5163
86 79쪽 예제 말이에요 ㅠㅠ [1] 앙아앙아 2012-09-20 4536
85 NDK 컴파일이 안됩니다. file [8] 더페이퍼 2012-09-25 5335
84 소스분석 관련하여 [4] whiterub 2012-09-28 4259

사용자 로그인