You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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中添加日志,确认该方法是否被实际调用:
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("MyAppInit", "Application onCreate is running");
        PESDK.init(this);
    }
    
    如果日志未输出,说明自定义Application未被系统加载,需排查Manifest配置或多进程冲突。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:28:22