NDK : javah 문제(.h 안만들어질때 Could not find~)
NDK : javah 문제
(.h 안만들어질때 Could not find~)
ㆍ 요즘 안드로이드 스튜디오로 OpenCV를 써야되서
NDK부터 차근차근 하는데 정말 오류가 많이 난다..
ㆍ 저는 데스크탑 2대, 노트북1대로 정확히 같은경로로
똑같이 개발환경 구축해봤는데 정말 다 똑같이 했는데도
데스크탑 1대가 정말 말썽을 부렸습니다.
그 말썽 부렸던 부분중 아주 간단한 문제가
.h파일이 안만들어질때였는데
(뒤에 나올 오류에 비하면 이정도는..)
다른 피씨에서는
대충
static{
System.loadLibrary("hello");
}
public native String hello();
여기까지 하고 jni 폴더 만들고
MainActivity에서 우클릭해서
javah 누르면 알아서 jni폴더에
이렇게 잘 만들어졌는데
데탑 한대에서는
죽어도 안되는 것이다..
자꾸 MainActivity를 못찾는다고 한다..
그래서 대충 삽질해보니 해결방법이
몇개 있다..
1. 앱을 한번 실행시킨다.
2. Clean Project - Rebuild Project 해준다.
뭐 여기까지는 괜찮다.
이래도 안되는 경우가 있더라..
그때는 최후의 수단으로
Terminal을 사용해야 한다
Terminal은
여기서 들어가면 되고
클릭해보면 대충
cmd 한거랑 똑같다.
여기서 javah ~ 써주면 되는데
여기서도 뻘짓좀 했다..
처음엔 MainActivity 경로를
쫙 써주면 된다는데
이게 또 되는사람이 있고
안되는사람이 있다
이걸 성공하면 또 support/v7 없다고 난리치는 경우도 있고
v7까지 써주면 또 v4가 없다고 난리치는 경우도 있다
그래서 저는 걍 전부 다 써줘버렸습니다.
- android.jar;
- android-support-v7-appcompat.jar;
- android-support-v4.jar;
이거 3개 추가해준 다음에
MainActivity까지 써주니
잘 작동했습니다.
위에 3개의 경로는
[AppData]-[Local]-[Android]-[sdk]
까지 동일하고
android.jar은
[platforms]-[android-23]에서(전 23으로 했습니다)
support v4, v7은
[extras]-[android]-[support]-[v7]-[appcompat]-[libs]
뭐 보여줄필요까지는 없었지만
여기까지는 그냥 대충 넘어가셔도 되고
터미널에 쫙 ~ 써주시면 됩니다.
먼저 결과사진 먼저 보면
(가릴부분이 좀 있어서 가렸습니다..)
좀 길어보이긴 하는데 자세히 보면
그냥 단순하게 경로만 적어준겁니다
조금 더 자세히 보면
처음에 Terminal을 선택하면 본인의 프로젝트까지 경로가 적혀있을겁니다
위에서보면
C:\ ~ OpencvTest>
이 상태일텐데 여기서
cd app\src\main
이렇게 적어주시고 엔터를 치면
위 상태와 같이
C:\~~~~~~~\main>
까지 완성됩니다
그 다음에 anroid.jar 추가
C:\~~~~~~~\main>javah -d jni -classpath C:[android.jar까지의경로]
를 써주시고 ; 세미콜론
그 다음에 android-support-v7-appcompat.jar 추가
C:\~~~~~~~\main>javah -d jni -classpath C:\[android.jar까지의경로];
C:\[android-support-v7-appcompat.jar까지의경로];
그 다음에 android-support-v4.jar 추가
C:\~~~~~~~\main>javah -d jni -classpath C:\[android.jar까지의경로];
C:\[android-support-v7-appcompat.jar까지의경로];
C:\[android-support-v4.jar까지의경로];
마지막으로
MainActivity까지의 경로
C:\~~~~~~~\main>javah -d jni -classpath C:\[android.jar까지의경로];
C:\[android-support-v7-appcompat.jar까지의경로];
C:\[android-support-v4.jar까지의경로];
..\..\build\intermediates\classes\debug 패키지.MainActivity
여기까지 한번에 다이렉트로 써주시고
엔터를 쳤는데 에러가 안뜨면
jni폴더에 .h가 생성되있습니다.
'안드로이드(android) > 알아두면 좋은것' 카테고리의 다른 글
Notification 아이콘 클릭시 특정 프래그먼트로 이동 (1) | 2016.08.02 |
---|---|
안드로이드 스튜디오 JavaCV 관련 (0) | 2016.07.19 |
[안드로이드]코드 입력시 자동으로 import되도록 설정 (0) | 2016.06.27 |
자바코드로 res(리소스)에 있는 string, color 사용하기 (0) | 2016.06.16 |
AppCompatActivity,AppTheme 타이틀(Title) 제거하기 + Fullscreen 만들기 (9) | 2016.06.01 |