Section 26 RtcEngine initialize 에러(해결은 했습니다!)
186
작성자 없음
投稿した質問数 0
채널 입장하고 권한 체크 후 앱이 꺼지고 Debug 콘솔에 아래 같은 로그가 뜨길래 한참 헤맸습니다.
코드 한 줄씩 지워가며 어디서 에러가 뜨는지 확인해보니 await engine!.initialize(RtcEngineContext(appId: appId,)); 코드가 들어가는 순간 앱이 꺼지더라구요
해당 부분을 집중해서 검색하다가 발견한 방법대로 RtcEngine 선언 부분에 late 를 넣어주니 앱이 꺼지지 않았습니다. 혹시 원인을 알 수 있을까요?
에러 로그
D/EGL_emulation( 2046): app_time_stats: avg=10745.24ms min=12.90ms max=31961.13ms count=3
D/nativeloader( 2046): Load /data/app/~~nTLNP9Bj_egzZU9DQGxSrQ==/com.example.video_call-LRfYUQJyccQppChea-IfMw==/lib/arm64/libAgoraRtcWrapper.so using ns clns-7 from class loader (caller=/data/app/~~nTLNP9Bj_egzZU9DQGxSrQ==/com.example.video_call-LRfYUQJyccQppChea-IfMw==/base.apk!classes2.dex): dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~nTLNP9Bj_egzZU9DQGxSrQ==/com.example.video_call-LRfYUQJyccQppChea-IfMw==/lib/arm64/libAgoraRtcWrapper.so" (new hash type from the future?)
E/AndroidRuntime( 2046): FATAL EXCEPTION: main
E/AndroidRuntime( 2046): Process: com.example.video_call, PID: 2046
E/AndroidRuntime( 2046): java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~nTLNP9Bj_egzZU9DQGxSrQ==/com.example.video_call-LRfYUQJyccQppChea-IfMw==/lib/arm64/libAgoraRtcWrapper.so" (new hash type from the future?)
E/AndroidRuntime( 2046): at java.lang.Runtime.loadLibrary0(Runtime.java:1081)
E/AndroidRuntime( 2046): at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
E/AndroidRuntime( 2046): at java.lang.System.loadLibrary(System.java:1765)
E/AndroidRuntime( 2046): at io.agora.agora_rtc_ng.AgoraRtcNgPlugin.onMethodCall(AgoraRtcNgPlugin.java:65)
E/AndroidRuntime( 2046): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
E/AndroidRuntime( 2046): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
E/AndroidRuntime( 2046): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
E/AndroidRuntime( 2046): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/AndroidRuntime( 2046): at android.os.Handler.handleCallback(Handler.java:959)
E/AndroidRuntime( 2046): at android.os.Handler.dispatchMessage(Handler.java:100)
E/AndroidRuntime( 2046): at android.os.Looper.loopOnce(Looper.java:232)
E/AndroidRuntime( 2046): at android.os.Looper.loop(Looper.java:317)
E/AndroidRuntime( 2046): at android.app.ActivityThread.main(ActivityThread.java:8705)
E/AndroidRuntime( 2046): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 2046): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
E/AndroidRuntime( 2046): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
I/Process ( 2046): Sending signal. PID: 2046 SIG: 9
Lost connection to device.
the Dart compiler exited unexpectedly.해결했던 방법
late RtcEngine? engine; //선언할 때 late 추가
回答 3
0
안녕하세요!
매우 이상하네요 저는 여전히 정상적으로 작동이 되고 있습니다.
혹시 안드로이드 실기기 사용하셨나요 아니면 에뮬레이터 사용하셨나요?
어떤 환경인지 조금 더 정보를 제공해주시면 다시 확인 해보겠습니다.
late 키워드는 await 키워드랑 현재 상황에 크게 관련이 없기 때문에 (특히나 nullable로 만든 상황에서는) 에러의 원인이 되면 안된다고 생각됩니다.
감사합니다!
0
화면에 그려보니 snapshot 에러 메세지에 engine initialze 가 안 됐다고 떠서 코트팩토리님 코드에 appId, token 만 제 agora 프로젝트에 맞춰 바꾸고 실행 시켰는데도 앱이 꺼지네요ㅠㅠ 제 설정이나 버전 문제이지 싶습니다.. 저는 영상통화가 크게 필요한 부분은 아닌지라 원격까지는 괜찮을 것 같습니다! 답변 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
OMC님의 질문에 대한 답변은 late 키워드가 추가되면서 발생한 변화와 관련이 있습니다. Dart에서 late 키워드는 초기화 지연(Lazy initialization)을 목적으로 사용됩니다. 이는 변수가 선언된 시점이 아니라 실제로 사용되는 시점에 초기화가 이루어지도록 하는 역할을 합니다. RtcEngine 객체의 경우, 앱 실행 과정에서 적절한 시점에 초기화가 되어야 올바르게 작동합니다.
에러 로그를 보니 java.lang.UnsatisfiedLinkError와 관련된 내용이 있는데, 이는 특정 네이티브 라이브러리를 로드하는 데 실패했음을 나타냅니다. await engine!.initialize(RtcEngineContext(appId: appId,)); 코드가 실행되는 시점에 RtcEngine 객체가 아직 초기화되지 않아 해당 네이티브 라이브러리 관련 작업이 제대로 이루어지지 않는 문제가 발생했을 수 있습니다.
late 키워드를 추가함으로써 RtcEngine 객체의 초기화를 사용 시점으로 미루어 주요 작업이 이루어지기 전에 필요한 모든 준비가 충분히 이루어질 시간을 확보할 수 있게 되었습니다. 따라서 앱이 예상대로 작동하지 않던 문제가 해결되었을 가능성이 높습니다.
질문에 대해 충분한 답변이 되었기를 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요.
video_call 플러그인 설치후 에러 발생
0
41
1
SDK 안드로이드 설치 질문!
0
56
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
90
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
64
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
51
1
플레이스토어
0
57
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
52
1
가이드라인 질문
0
55
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
75
1
emulator 실행 오류
0
91
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
68
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
41
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
51
1
video_call 플러그인 설치시 에러문제
0
61
1
children 안의 if 문에서 { } 못쓰는 이유?
0
46
1
이렇게 오류가 떠요
0
61
1
AppBar 사용했는데
0
60
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
54
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
61
1
Video Player 프로젝트에 대한 추가 질문
0
50
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
38
1
geolocator 오류때문에 개발진행이 불가능입니다
0
61
1
API 관련 이슈
0
83
2
VoidCallback 뒤에 null 연산자 표기에 관한 질문
0
43
1

