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

ndk 예제를 응용해 보려고 하는데요


책에 있는 소스에서 제가 사용중인 라이브러리를 추가하여 실행 시키려고 하는데 에러가 나는데요


//------------------------------------

//-----libled/Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES:= \
    ledService.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include   <----헤더추가
LOCAL_SHARED_LIBRARIES := \
       libutils    \
       libbinder    \
        libLAPI      \  <---- shared library 추가


LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libled
include $(BUILD_SHARED_LIBRARY)

//------------------------------------




//------------------------------------ledService.h

#include <utils/RefBase.h>
#include <binder/IInterface.h>
#include <binder/Parcel.h>

#include "../include/LAPI.h" <-----헤더파일 추가


namespace       android
{
    class           LEDService:public BBinder
    {
        int32_t         mNextConnId;
      public:
        static int      instantiate();


                        LEDService();
                        virtual ~ LEDService();
                       
        virtual status_t onTransact(uint32_t, const Parcel &, Parcel *, uint32_t);
    };
};                              // namespace


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

binder 영역에서 C라이브러리를 이용하여 코드를 만들려고 이렇게 했는데요

위 처럼 헤더만 추가해서 mm으로 빌드한후에


ledservice를 실행하니깐

Segmentation fault 메시지가 바로 나오더라구요;;


LAPI는 제가 테스트용으로 만든 라이브러리이구요  암보드에서 라이브러리 이용해서 동작테스트까지 다 해봤습니다.


헤더만 추가했는데.

Segmentation fault가 나오는데;; 라이브러리 경로나 설정을 잘못 지정한건가요?;;







전호철

2015.02.04 02:33:15
*.162.60.30

아마....

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include   <----헤더추가 
하셨으니
#include "../include/LAPI.h" <-----헤더파일 추가
이렇게 하지 말고
#include <LAPI.h> <-----헤더파일 추가
이렇게 하셔야 할것 같네요.

Segmentation fault 떨어지는 문제같은거는 core dump 분석하는 법을 공부하셔서 해결하시는게 좋아보입니다.

ice179

2015.02.04 02:36:01
*.150.142.33

null 참조하거나 그럴때 Segmentation fault  가 나는데

android 환경 터미널에서 gdb나 디버그할수 있느 방법이 있나요?

 

헤더선언을 #incude "LAPI.h"로 하면 경로 에러가 나네요 기존에 "../include/LAPI.h"는 컴파일은 잘 되긴했는데요

고도리

2015.02.04 05:57:20
*.200.239.210

logcat을 띄워 놓으신 후


ledservice를 실행하시면 ledservice가 죽는 포인트를 debug message로 보여줍니다.

함수까지 나오니, 대략 알 수 있을겁니다.


보통은 파일이나 device driver 접근에 대한 permission 문제가 많습니다.

List of Articles
번호 제목 글쓴이 날짜sort 조회 수

ndk를 이용하여 일반 안드로이드 어플을 만들수가 있나요? [3]

  • biokk
  • 2015-07-25
  • 조회 수 1024

3장 계산기 에러 file [2]

ndk 라이브러리추가 하는 질문입니다 [8]

  • ice179
  • 2015-02-11
  • 조회 수 820

ndk onTransact 함수에 대한 질문인데요 [1]

  • ice179
  • 2015-02-07
  • 조회 수 247

ledservice , 라이브러리 추가 관련한 질문입니다 [3]

  • ice179
  • 2015-02-04
  • 조회 수 341

ndk 함수에서 c언어 동작은 onTransact 에서만 동작하나요? [3]

  • ice179
  • 2015-02-03
  • 조회 수 362

android binder 의 onTransact(uint32_t code, ...)의 code값은 ... [1]

  • ice179
  • 2015-01-29
  • 조회 수 290

gpio 컨트롤 예제질문입니다. [3]

  • biokk
  • 2015-01-21
  • 조회 수 647

gpio 컨트롤관련하여 ledservice 가 바로 죽어 버리는현상이 나오는... [2]

  • biokk
  • 2015-01-17
  • 조회 수 224

안드로이드 ndk gpio컨트롤 하기 질문입니다. [2]

  • ice179
  • 2015-01-16
  • 조회 수 433

pluscalc 질문입니다. [1]

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

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

hoffplay 컴파일 질문 입니다. [2]

hoplayer_core 질문입니다. [2]

ffmpeg 빌드관련 질문드립니다 file [6]

hoffplay 빌드시 sec_format.h / SEC_OMX_Def.h 없다고 나옵니다. [3]

너무 자주 질문드리는 것 같아 죄송해요 ^^; [1]

ffmpeg 빌드에러 [2]

동영상 파일을 열때 avformat_open_input문 사용문의 [2]

사용자 로그인