2014-04-18 3 views
9

원시 코드가있는 Android 프로젝트가 있습니다. 오류 또는 경고없이 ndk-build 명령을 호출하여 명령 줄에서 원시 코드를 작성할 수 있습니다. 하지만 ADT에서 열면 다음 오류가 표시됩니다.Android NDK 빌드, 메소드를 확인할 수 없습니다.

enter image description here

오류 메시지 : 프로젝트에서 유사한 오류가있는 많은 파일이 있습니다 Method CallStaticIntMethod could not be resolved..

구성을 이중으로 확인했으며 현재 가지고있는 내용을 확인했습니다. 안드로이드 빌드 툴 체인과 제대로 구성 포함 (아래 사진 참조)

enter image description here

enter image description here

필수 포함

enter image description here

또한 프로젝트 탐색기에서 볼 수 있습니다 그리고 그들은 비어 있지 (유효 올바른 헤더 파일을 가리 키십시오). 내가 프로젝트 및 BuildClean

enter image description here

는하지만, 오류가 아직. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

구성 : 당신의 헤더와 다시 연결 어떤 libs와 모든 곳 ADT 22.6.2, NDK의 r9d (64 비트),

답변

11

환경 설정에 어려움을 겪고 마침내 해결책을 찾았습니다. 이것은 AOSP에보고되었지만 아직 수정되지 않은 NDK 플러그인의 bug입니다. 대답의 과거는 의견 # 50에 설명되어 있습니다. 여기 나를 위해 일한 순서가 있습니다.

  1. 열기 프로젝트 속성 - GCC C CompilerAndroid GCC Compiler 교체 섹션 Used Tools에서>도구 찬 편집기
  2. ->C/C는 ++ 빌드. 섹션이 비어 있다면 거기에 GCC C Compiler 항목을 추가하십시오. enter image description here
  3. 열기 프로젝트 속성 - 당신의 H-파일이있는 포함될>경로 및 기호과 디렉토리를 추가 ->C/C++ 일반합니다. 을 사용하십시오. 버튼을 위로 이동하여 내 지역에 포함 된 폴더 (내 경우에는 /AudioPlayer/jni)를 첫 번째 폴더에 추가하십시오. 그런 다음 플랫폼과 툴체인을 추가합니다. 내장 된 포함은 맨 아래에 있어야합니다. enter image description here 내 경우에는 툴체인에 대한 전체 경로가 다음과 같습니다. 이 경로는 원본 Android GCC Compiler toolchain의 기본 제공 경로이며 2 단계에서 교체했습니다.

    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include 
    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed 
    
  4. 을 눌러 OK 버튼, 깨끗한 프로젝트를 재 구축 할 수 있습니다. 모든 오류는 사라져야합니다. 그들이 머물러 있다면 문제에서 그들을 제거하고 다시 한번 프로젝트를 다시 빌드하십시오.

업데이트 : 당신이 파일을 포함하는 경로를 추가 할 수있는 다른 장소를 발견했다. 그러나 이클립스 버전에 따라 달라집니다. 프로젝트 설정 -> C/C++ 일반 -> 프로세서 경로, 매크로 포함 -> CDT 사용자 설정 항목 -> 추가. 위에 나열된 경로를 추가 한 후에 더 이상 컴파일 문제가 없습니다. 개발은 다시 재미 있습니다.

+1

1 단계와 2 단계를 수행 할 필요가 없었으므로 필요하지 않을 수 있습니다. 다른 대답은이 일에 잘 맞았습니다. 감사. – haffax

+0

안녕하세요, 저는이 해결책을 시도했습니다. C 코드의 모든 오류가 사라졌지만 프로젝트 이름이 여전히 오류 기호를 표시하고 이로 인해 프로젝트를 실행할 수 없습니다. 나는 정확히 무엇이 잘못되었는지 모릅니다. 제발 좀 더 제안 해주세요 –

0

예, OSX 10.9.2 그것 IDE에 의해 발생 모르고. 오류는 IDE의 자동 완성/버그 시스템에 의해 생성됩니다. 이클립스에서 포함을 수정하거나 환경 설정에서 오류로 제거 할 수 있습니다.

-1

Android GCC 컴파일러에서 GCC C Complier로 변경하고 포함 디렉토리를 업데이트 한 후 프로젝트 -> 등록 정보 -> 검색 옵션으로 이동하여 관리 프로필에서 GCC로 검색 프로파일을 변경하여 유사한 오류가 발생했습니다. .

+0

이 답변은 6 개월 전 beworker의 답변과 다른 점은 무엇입니까? 또한 "[보호 된"질문은 무엇입니까?] (http://meta.stackexchange.com/q/52764) – jww

+0

의 "나 역시"답변을 참조하십시오. 다른 해결책입니다. beworker의 대답은 나를 위해 작동하지 않았다. 그의 솔루션을 시도한 후에 발견 옵션에서 발견 프로파일을 변경하여 문제점을 수정했습니다. beworker의 대답이 나를 위해 문제를 해결하는 것과 관련이 있는지를 잘 모르겠다. 나는 단지 두 단계가 모두 필요한 경우에 대비하여 그의 해결책을 먼저 시도했다고 언급 할 것이라고 생각했다. –

관련 문제