unity 빌드 오류 해결기 / Building Library\Bee\artifacts\Android\fy9m9\libil2cpp.so failed with output: ld.lld: error: undefined symbol: jslib_call_action >>> referenced by Assembly-CSharp__1.cpp:9123

이건개발·2024년 8월 6일
1

안드로이드 빌드 해보까 하니 바로 에러가나며 빌드가 안되었다.

기존엔 빌드를 mono 로 하고 있었는데 il2cpp 로 고치니 문제 생겼습니다.
에러메세지를 대충보고 구글검색을 시작했으나 NDK 버그라느니 안드 버전 문제라르니하는 글이 있었는데 해결은 안되었고 에러메세지를 자사세히 보니 jslib_call_action 라는 글자가 보였습니다.

이것은 제가 WEBGL 빌드할때 만든 통신용 코드였습니다.
당연히 안드로이드에는 이 함수와 대응되는 내용이 없고

il2cpp 는 이것을 강력하게 검사하봅니다.
여러가지 빌드에선 문제 없었서 상당히 늦게 알아챘습니다.

그래서 #if 로 막고 빌드

#if UNITY_WEBGL && UNITY_EDITOR == false
	[DllImport("__Internal")]
	private static extern void jslib_hello();
	[DllImport("__Internal")]
	private static extern void jslib_call_action(string text);
#else
   // 더미함수로 때움
	private static void jslib_hello() { }
	private static void jslib_call_action(string text) { }
#endif

요약

왜이케 고치기가 어려웠나 ..

  1. android mono 까지는 빌드가 잘되서 있다는걸 까먹었음
  2. 에러 메세지를 제대로 안보고 일반적인 오류인걸로 착각했음
profile
게임 개발 / 웹 개발 / 주식 투자 / 은퇴자 / 클라우드타입 / 파이어베이스 / 수퍼베이스 / 유니티

0개의 댓글