Flutter调用video_editor_sdk打开编辑器崩溃:ExceptionInInitializerError
问题描述
从相册选取视频后,调用video_editor_sdk插件的编辑功能时应用直接崩溃,调用代码如下:
final result = await VESDK.openEditor( Video(path) );
崩溃错误日志
E/AndroidRuntime( 663): FATAL EXCEPTION: main E/AndroidRuntime( 663): Process: com.example.video_edit, PID: 663 E/AndroidRuntime( 663): java.lang.ExceptionInInitializerError E/AndroidRuntime( 663): at ly.img.android.pesdk.backend.model.state.manager.ImglyEventDispatcher.init(Unknown Source:0) E/AndroidRuntime( 663): at ly.img.android.pesdk.backend.model.state.manager.SettingsList.<init>(SettingsList.java:88) E/AndroidRuntime( 663): at ly.img.android.pesdk.VideoEditorSettingsList.<init>(VideoEditorSettingsList.kt:32) E/AndroidRuntime( 663): at ly.img.flutter.video_editor_sdk.FlutterVESDK.present(FlutterVESDK.kt:133) E/AndroidRuntime( 663): at ly.img.flutter.video_editor_sdk.FlutterVESDK.onMethodCall(FlutterVESDK.kt:92) E/AndroidRuntime( 663): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258) E/AndroidRuntime( 663): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295) E/AndroidRuntime( 663): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322) E/AndroidRuntime( 663): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) E/AndroidRuntime( 663): at android.os.Handler.handleCallback(Handler.java:938) E/AndroidRuntime( 663): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime( 663): at android.os.Looper.loop(Looper.java:236) E/AndroidRuntime( 663): at android.app.ActivityThread.main(ActivityThread.java:8057) E/AndroidRuntime( 663): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 663): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620) E/AndroidRuntime( 663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011) E/AndroidRuntime( 663): Caused by: java.lang.RuntimeException: ┌───────────────────────────────────────────────────────────────────────┐ E/AndroidRuntime( 663): │ Unable to find autogenerated SDK classes! │ E/AndroidRuntime( 663): │ This might be due to some Gradle mis-configuration. │ E/AndroidRuntime( 663): │ Please follow our Getting Started guide to properly setup the SDK. │ E/AndroidRuntime( 663): │ If this issue persists, │ E/AndroidRuntime( 663): │ please contact Support with information about your project structure. │ E/AndroidRuntime( 663): └───────────────────────────────────────────────────────────────────────┘ E/AndroidRuntime( 663): at ly.img.android.pesdk.backend.model.state.manager.ImglyEventDispatcher$Companion.genClassNotFound(ImglyEventDispatcher.kt:143) E/AndroidRuntime( 663): at ly.img.android.pesdk.backend.model.state.manager.ImglyEventDispatcher$Companion.access$genClassNotFound(ImglyEventDispatcher.kt:126) E/AndroidRuntime( 663): at ly.img.android.pesdk.backend.model.state.manager.ImglyEventDispatcher.<clinit>(ImglyEventDispatcher.kt:133) E/AndroidRuntime( 663): ... 16 more I/Process ( 663): Sending signal. PID: 663 SIG: 9
环境信息
- 使用插件:video_editor_sdk
- Flutter SDK版本:3.7.7
- 已按照插件官方README完成项目配置
解决方案
错误核心是Gradle配置缺失导致SDK自动生成类无法被找到,按以下步骤修复:
检查并升级Gradle插件版本
修改项目根目录build.gradle中的Gradle插件版本至7.0及以上:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 其他依赖项保留 }启用数据绑定
在app/build.gradle的android代码块中添加数据绑定配置:android { // 其他现有配置 buildFeatures { dataBinding true } }清理重建项目
- 执行终端命令:
flutter clean && flutter pub get - 重启Android Studio,依次执行
Build -> Clean Project和Build -> Rebuild Project
- 执行终端命令:
添加混淆豁免规则
若项目开启混淆,在proguard-rules.pro中添加:-keep class ly.img.android.pesdk.** { *; } -keep class ly.img.flutter.video_editor_sdk.** { *; }验证Maven仓库配置
确认项目根目录build.gradle的allprojects -> repositories中包含以下仓库:allprojects { repositories { // 其他现有仓库 maven { url "https://artifactory.img.ly/artifactory/imgly" } mavenCentral() } }
内容的提问来源于stack exchange,提问作者Devansh Patel
相关产品推荐
相关产品推荐

