Android应用PESDK.init()初始化后仍崩溃的问题解决问询
VESDK Android初始化崩溃问题排查与解决
问题描述
启动继承ImgLyActivity的Activity时触发java.lang.ExceptionInInitializerError,错误提示为"Please Call PESDK.init() in Application onCreate",堆栈信息如下:
at ly.img.android.pesdk.ui.activity.ImgLyActivity.setTheme(ImgLyActivity.java:153) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4129) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322) ... Caused by java.lang.RuntimeException: Please Call PESDK.init() in Application onCreate at ly.img.android.e.b(:9) at ly.img.android.PESDK.getAppContext() ...
已在自定义Application类的onCreate中添加PESDK.init(this),且确认Application类已在AndroidManifest.xml中正确声明,但崩溃仍未解决。环境信息:应用版本1.2.4,VESDK版本3.2.0,Android 14。
用户疑问
- 在Application类中正确初始化PESDK的方式是什么?
- 是否需要特定配置或依赖才能确保
PESDK.init()正常生效?
当前Application实现:
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); PESDK.init(this); } }
排查与解决建议
1. 确认初始化时机与执行状态
- 确保
PESDK.init(this)在super.onCreate()之后同步执行,不要放到异步线程或延迟任务中。 - 在
MyApplication的onCreate中添加日志,确认该方法是否被实际调用:
如果日志未输出,说明自定义Application未被系统加载,需排查Manifest配置或多进程冲突。@Override public void onCreate() { super.onCreate(); Log.d("MyAppInit", "Application onCreate is running"); PESDK.init(this); }
2. 修正AndroidManifest配置细节
- 确认
application标签的android:name属性完整指向你的自定义Application类,注意包名前缀:<application android:name="com.yourpackage.MyApplication" ...> <!-- 其他组件配置 --> </application> - 若应用启用多进程,需仅在主进程初始化VESDK(非主进程若无需SDK功能可跳过):
@Override public void onCreate() { super.onCreate(); // 判断是否为主进程 if (getPackageName().equals(getCurrentProcessName())) { PESDK.init(this); } } // 获取当前进程名的工具方法 private String getCurrentProcessName() { int pid = android.os.Process.myPid(); ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) { if (appProcess.pid == pid) { return appProcess.processName; } } return ""; }
3. 检查依赖与混淆配置
- 确认VESDK依赖完整引入,以Gradle为例,需包含核心与UI模块:
implementation 'ly.img.android.pesdk:video-editor-sdk:3.2.0' implementation 'ly.img.android.pesdk:video-editor-ui:3.2.0' - 若开启代码混淆,需在
proguard-rules.pro中保留VESDK类不被混淆:-keep class ly.img.android.** { *; } -keep interface ly.img.android.** { *; }
4. 尝试标准初始化写法
- 使用带配置构建器的初始化方式,明确传入上下文:
@Override public void onCreate() { super.onCreate(); PESDK.init(new PESDK.Configuration.Builder(this).build()); }
内容的提问来源于stack exchange,提问作者Shahid Raza
相关产品推荐
相关产品推荐

