[코틀린] 고도엔진 안드로이드 플러그인 최종정리
자바가아닌
코틀린으로 다시 만드는 이유..
안드로이드 카메라 x 라이브러리가 코틀린 가이드만 있음 -ㅅ-;;
안드로이드 스튜디오에 코틀린을 자바로 변환해주는 기능이 있다.
반대의 경우는 안됨 ㄷ;;(동생이 키오스크앱 개발자라 알려줌 ) ㄷㄷ
난 안드로이드 스튜디오를 많이 안다뤄봐서 몰랐...
일단 간단하게 진행 새로 만들어보장.
일단 코틀린으로 먼저 진행했는데 잘안됐다.
일단 수많은 시행착오와 밤샘을 겪고
이 블로그에도 길게 과정을 겪으면 첫 빌드 후 기능 호출까지 다뤄봤는데
안드로이드 스튜디오 툴에 익숙하지 않아서 잘모르던 주의사항을 끝 부분에 언급하려고한다.
만약 오류가 나거나 뭔가 빌드가 안되는 문제
고도엔진으로 만든 apk파일로 설치 실행 후
플러그인 기능이 호출안되거나 만든 자바클래스가 확인이 안되는 경우 등등은 끝부분에서 확인하면됨!!
안드로이드 스튜디오로
플러그인제작
고도엔진에서 제공하는 jar 파일을 종속성 부여
고도엔진에서 제공하는 라이브러리로
클래스를 만듦.
안드로이드api기능을 이것저것 작성해서 고도엔진에서 쓸 수 있음.
써놓고보니 길어서 정리가 안되는뎅
결국
고도엔진에서 사용할 모바일만의 api기능 들을
안드로이드 스튜디오로 만든다고 보면됨.
간단하게 진행하고 완료된 것까지 확인해보겠음!!
일단 안드로이드 스튜디오를 키고
언어 코틀린으로 ㄱㄱ
코틀린을 선택하면 자바 코틀린 둘다 가능
밑에 groovy선택
빌드언어 코틀린도 가능한데 버전이 안맞았을 수 있다. 빌드할 때 오류 살펴보면됨.
버전은 고도4.2 최소인 24로 해줬다.
세팅까지 좀 기다렸다가..
좀 시간이 걸린다..
일단 진행을 어떻게 해야하냐면
플러그인을 제작할것이고 애플리케이션을 안만들거기때문에
app을 일단 지울거다
그럼 이제 해야할건 필요없는 기능들을 지워주는것.
mylibrary만 쓸것이기에.. app을 삭제해주자
app을 삭제하는 -빼기 아이콘을 눌러줌
그다음은 필요없는 종속성관련 코드를 지워주는 작업이 필요하다.
선택
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"지워버리자.
그리고
만들어서 테스트는 보통 고도엔진에서 할거기 때문에...
물론 안드로이드 스튜디오에서 안드로이드 기능을 확인하려고하면 냅두는게 맞당.
하지만 난 상남자니까 쓸놈만 냅두겠음.
삭제누르면 바로 삭제안되고 한번 더 삭제해야댐 ㄷㄷ;;
물론 처음에 설정한대로 되니까 값이 바뀌거나 하는 일 거의없음.
그다음 밑에 디펜던시스 종속성을 삭제해주어야함.
여기서 material은 꼭삭제하셔야함
이게 남아있으면
고도엔진 에디터에서
플러그인의 aar파일을 바꿔끼면서
확인할 때 오류가 날 수 있음
오류나면 플러그인 전체를 밀고 다시 플러그인 만들어야함.ㅠㅠ
그리고 이따가 mavencentral 저장소검색을 위해
implementation libs.androidx.core.ktx
이거 빼고
필요없음
필요하면 그 때가서 추가하는게 나음.
그 다음에
또 삭제할 게 있음.
여기에 고도엔진이 버전이 다른게 두개 존재하면 고도엔진에서 함수나 클래스가 안불러와진다.
중요함!!
일단 코틀린에서 설정해야되는 부분이 있는데
위에보면
하는 이유는 저게 35를 타겟으로하는데
이처럼 타겟sdk가 35면 35에 맞는 종속성 버전으로 바꿔주어야한다.
그 다음
고도엔진에서 제공하는 안드로이드 jar파일을 설치해주고 종속성부여해주어야하는데
여기서 아까 만든 mylibrary를 선택하고 이번엔 우측의 디펜던시쪽 +아이콘을 누르면
이걸 눌러줌..
진행하기전에 설명하면
밑에 jar/aar디펜던시는 로컬로 하는방식인데
로컬로는 빌드가 안됐다. 하려면 고도 aar에서zip으로 변환 후
jar파일을 따로 로컬로 지정해야하는데
이런 번거로움 없이
고도엔진에서는 네트워크 클라우드로 지원하는 것 같다.
여기 MavenCentral에서
지금 4.3이 최신이다.
4.2로 종속성 부여했다가 4.3하면 아까 카탈로그에 4.2 4.3이 둘다 남아서
모호해지고 고도엔진에서 불러와지지 않는다.
최신 4.3를 jar 선택해도 4.2고도엔진에서 작동잘된다.
다시 아까 장면으로 와서
저장소에있는 것들을 불러올 수 있는데
고도도 가능함.
고도도 가능함.
org.godotengine을 치면 나온다.
근데 이 명령어는 버전업하고 저장소 이름이 바뀌면 달라질 수 있으니 참고해야함!
최신 stable확인
적용하기전에 버전꼭확인하자
버전변경도 가능함.
난 근데 4.3아니면 오류나던것 같아서 4.2.2에서도 4.3으로진행
그럼 이렇게 고도가 추가됨
카탈로그가서 버전명까지 확인 ㄱ
여기에 다른 버전 값이 존재하면 호출안됨!!중요!
보통 처음하면 종속성 지웠다 다시 설치했다하는데
다른 버전이 카탈로그에 남을 수 있음.
CameraPlugin으로 만들었다. 나는 카메라 플러그인이 필요함 ㅎㅎ; 기능에맞게 ㄱㄱ
기본 디폴트 코드세팅은 고도엔진에서도 제공하니까 깃허브에 있는거 가져가서 쓰면된당.
고도문서 안드로이드 플랫폼 플러그인에 다있음.
밑에는 내 기스트
플러그인 이름은 CameraPlugin이고
호출할 함수이름은 Toast(출력)기능이 있는
test로 이름을 지어서 확인할거다.
이제 안드로이드 매니페스트에 이 플러그인이름과 호출할 실제 클래스 이름을 작성해주어야함.
이 플러그인 이름이 고도엔진에서도 동일하게 쓰임.
고도엔진에서 제공하는 코드 같은경우는
이 플러그인 이름을 고도엔진에서 제어할 수 있게 확장성을 둔 코드로 되어있다.
고도문서에 보면
확장성 좋게 코드 작성되어있는데 복붙해도됨. 확인은 안해봄 헤헤;
어쨌든 안드로이드 매니페스트로 ㄱㄱ
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<meta-data
android:name="org.godotengine.plugin.v2.플러그인이름"
android:value="com.회사명.프로젝트명.실제클래스이름" />
</application>
</manifest>
으로 작성하면됨.
이제 이걸 빌드할 건데
빌드하기전에 싱크 gradle파일 해주고
이번에는
./gradlew build
를 입력한다.
문제없이 성공된모습 오류도 안보임.
mylibrary에서
우클릭 후 탐색기(explore)로 가면
나는 이미 만들어둔 고도엔진에
버튼을 누르면 아까 만든 aar의 클래스에서 test함수를 호출할거다.
그럼 고도엔진에서 플러그인 만드는 과정까지 ㄱㄱ
이제 이걸
고도엔진에서 확인하려면.
호환성은 안드로이드 api가 작동하지 않음.
이것도 헤맴-ㅅ-;
플러그인 이름은 아까 안드로이드
매니페스트의 플러그인 이름과 똑같아야함.
내가 만든 클래스
CameraPlugin을 가져와야한당.
고도문서에 잘되어있는데 코드는
이건데
여기서
aar파일 경로를 설정까지 됐고.
버튼으로한 테스트 코드는
이거고
간단하다
만든 플러그인이 있으면 변수에 플러그인을 담고
버튼을 누르면
그 플러그인의 멤버 함수 test를 호출하는 코드
이제 빌드한 후에 버튼을 눌러서 hi메시지가 나오는지 확인하면됨.
고도엔진으로 빌드해서 apk설치하는 방법은 정리하지 않았다.
빌드부분은 쉬우니까 유튜브로 찾아보길 바란당!!
apk설치할 때는 서명이 필수고
서명없으면 설치안됨.
그리고 안드로이드api 불러오니까
모바일설정 필수임.
호환성모드는
그런 안드로이드 기능이 빠져있음.
내 구형폰에 설치중...
이 화면뜨면 플러그인은 웬만하면 문제없음.
버튼 누르고 hi가 떴다.
로그캣도확인해보장.
이로써 자바로 처음만들고 코틀린으로도 다시 만들어봤다. 후하하.
고도엔진으로 안드로이드 개발하는 분들에게 도움이 되었으면 좋겠다.
댓글
댓글 쓰기