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

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

PDK를 이용하여 안드로이드 프레임워크 so파일 참조에 관해서 질문있... [7]

예제를 따라하던 중 Android.mk 파일로 APK파일 생성 후 설치시 ... [6]

ndk 38페이지 질문_repo file [1]

안드로이드의 모든것 분석과 포팅 교재 관련 [2]

  • nexus26
  • 2011-07-05
  • 조회 수 10586

[Linux와 Android] 001 - 임베디드 시스템에 대하여 file

다시 질문 드립니다.ㅜㅜ apk 설치문제입니다. [3]

책 관련해서 질문이 있습니다. [1]

  • winpih
  • 2011-07-13
  • 조회 수 9036

안드로이드 init의 특징에 대해 질문있습니다. [2]

117쪽 ueventd 실행 부분.. [1]

475페이지 그림 외 건의 사항.. [2]

[Linux와 Android] 002 - UNIX/Linux system 개요 file

[Linux와 Android] 002 - UNIX/Linux system 개요(Continue......

p186. Gingerbread 센서 구조의 간략한 설명 요청드립니다. [3]

  • forone
  • 2011-08-25
  • 조회 수 8432

NDK를 이용한 camera 제어 예제에 대해 문의 드립니다. [7]

  • 죽유
  • 2013-01-11
  • 조회 수 8050

chapter7 안드로이드 오디오 서브시스템 에서 궁금한게 있습니다 [1]

개발환경 설정 중 문의사항입니다. file [1]

아래 [SDL 예제관련 에러 질문입니다.] 이어서... [3]

  • 민민
  • 2012-12-26
  • 조회 수 7759

책이 나온내용이지만 좀 다른예기일수도 잇네요 [1]

RGB 부분에 대해서 질문이 있습니다. [1]

  • ys2cdh
  • 2012-01-05
  • 조회 수 7382

아..권한 하고 마운트 에서 막혀버리네요..ㅜㅜ [1]

사용자 로그인