检藏
检藏
  • 发布:2023-02-07 20:37
  • 更新:2023-07-20 02:22
  • 阅读:340

【报Bug】uts插件开发不支持跨进程调试,造成代码修改不能热更新,也不能调试代码

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX版本号: 3.7.0

示例代码:

import Context from 'android.content.Context';
import Engine from 'android.service.wallpaper.WallpaperService.Engine';
import WallpaperService from 'android.service.wallpaper.WallpaperService';
import SurfaceHolder from 'android.view.SurfaceHolder';
import MediaPlayer from 'android.media.MediaPlayer';
import UTSAndroid from 'io.dcloud.uts.UTSAndroid';

import * as SpUtil from "./SpUtil.uts"

export class JnWallpaperService extends WallpaperService {

constructor() {  
    super()  
}  
override onCreateEngine(): Engine {  
    console.log('onCreateEngine');  
    return MyEngine();  
}  

MyEngine = class extends Engine {  
    private mp: MediaPlayer | null = null  
    constructor() {  
        super()  
        this.mp = new MediaPlayer()  
    }  
    override onCreate(surfaceHolder: SurfaceHolder) {  
        console.log('引擎创建');  

        super.onCreate(surfaceHolder);  
    }  

    override onDestroy() {  
        console.log('引擎注销');  
        super.onDestroy()  
    }  

    override onVisibilityChanged(visible: boolean) {  

    }  

    override onSurfaceCreated(holder: SurfaceHolder) {  
        console.log('Surface创建3');  
        this.mp!.setSurface(holder.getSurface());  
        try {  
            let tmp ='https://mp-c286fa93-2e46-4ca6-8f4b-bd8f0dca1b03.cdn.bspapp.com/VKCEYUGU-c286fa93-2e46-4ca6-8f4b-bd8f0dca1b03/8c6bb959-319a-4ecd-9db3-7e44b151a2a8.mp4'  
            this.mp!.setDataSource(tmp);  
            this.mp!.setLooping(true);  
            this.mp!.prepare();  
            this.mp!.start();  
        } catch (e) {  
            console.log(e);  
        }  

    }  

    override onSurfaceDestroyed(holder: SurfaceHolder) {  
        console.log('Surface注销');  
        this.mp!.release();  
        this.mp = null;  
    }  

}  

}

操作步骤:

只要uts插件涉及到跨进程,HBuilderX 都无法调试

预期结果:

代码修改能即使热更新,调试时能正确输出值

实际结果:

无任何反应

bug描述:

在开发动态壁纸uts插件中,发现在自定义MyEngine 内部类使用console.log(),调试时发现控制台无法打印内容,在内部中新增修改代码,也不会热更新,由于HBuilderX没报任何错,一直卡了将近一个月开发动态壁纸uts插件还没开发出来。直到将AndroidManifest.xml 中service的android:process=":wallpaper" 注释才能正常调试。建议HBuilderX 支持跨进程调试

2023-02-07 20:37 负责人:无 分享
已邀请:
打了个结

打了个结 - 独立开发者

学习一下,大佬做的怎么样了 我现在也是 debug没有uts的选项

要回复问题请先登录注册