1***@qq.com
1***@qq.com
  • 发布:2026-10-29 14:15
  • 更新:2026-10-29 14:15
  • 阅读:56

【报Bug】安卓集成uni小程序sdk应用开发,反复退出再打开uniapp页面,出现uniapp首页白屏

分类:uni小程序sdk

产品分类: uni小程序SDK

手机系统: Android

手机系统版本号: Android 16

手机厂商: vivo

手机机型: vivo X200

页面类型: nvue

SDK版本号: 5.24 20260909

示例代码:
//pages/index/index.nvue  

<template>  
    <view class="base" :style="{ height: windowHeight + 'px' }">  
        <text class="title">nvue 首页</text>  
        <text class="desc">本页为小程序页面 nvue</text>  
        <view class="btn" @click="exitApp">  
            <text class="btn-text">退出小程序</text>  
        </view>  
    </view>  
</template>  

<script setup>  
import { onLoad } from '@dcloudio/uni-app';  
import { ref } from 'vue';  

const windowHeight = ref((uni.getSystemInfoSync() || {}).windowHeight || 750);  
const openCount = ref(0);  

onLoad(() => {  
    // 用于判断 nvue 页面是否真的渲染出来。  
    // Weex 渲染失败(白屏)时本页 JS 完全不执行,日志中不会出现这一行。  
    console.log('[DEMO] index.nvue onLoad —— nvue 渲染成功');  
});  

const exitApp = () => {  
    console.log('[DEMO] 退出小程序');  
    plus.runtime.quit();  
};  
</script>  

<style scoped>  
.base {  
    display: flex;  
    width: 750rpx;  
    background-color: #ffffff;  
    justify-content: center;  
    align-items: center;  
    flex-direction: column;  
}  

.title {  
    font-size: 40rpx;  
    color: #333333;  
    margin-bottom: 30rpx;  
}  

.desc {  
    font-size: 28rpx;  
    color: #888888;  
    margin-bottom: 16rpx;  
}  

.btn {  
    display: flex;  
    margin-top: 60rpx;  
    width: 400rpx;  
    height: 88rpx;  
    border-radius: 44rpx;  
    background-color: #245ec3;  
    justify-content: center;  
    align-items: center;  
}  

.btn-text {  
    font-size: 30rpx;  
    color: #ffffff;  
}  
</style>  
//安卓端代码  
//DemoAPP  启动的Application  
public class DemoApp extends Application {  
    public static final String TAG = "UNIMP-DEMO";  
    /** 与 uni 工程 manifest.json 的 appid 保持一致 */  
    public static final String UNI_APP_ID = "xxxxx";  
    @Override  
    public void onCreate() {  
        super.onCreate();  
        initSDK();  

    }  
    private void initSDK(){  
        // 这里直接返回,避免重复初始化  
        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {  
            return;  
        }  
        DCSDKInitConfig config = new DCSDKInitConfig.Builder()  
                .setCapsule(false)  
                .setEnableBackground(false)  
                .build();  
        DCUniMPSDK.getInstance().initialize(this, config, new IDCUniMPPreInitCallback() {  
            @Override  
            public void onInitFinished(boolean b) {  
                Log.d(TAG, "UniMPSDK 初始化完成 = " + b);  

            }  
        });  
    }  

}  

// 安卓页面 MainActivity  
public class MainActivity extends Activity {  

    private static final String TAG = DemoApp.TAG;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  

        Button btnOpen = findViewById(R.id.btn_open);  
        btnOpen.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                Log.d("点击测试","1");  
                openMiniProgram();  
            }  
        });  
    }  

    private void openMiniProgram() {  
        try {  
                UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();  
                uniMPOpenConfiguration.path = "pages/index/index";  
                DCUniMPSDK.getInstance().openUniMP(MainActivity.this, DemoApp.UNI_APP_ID, uniMPOpenConfiguration);  
        } catch (Exception e) {  
            Log.e(TAG, "打开失败" + e.getMessage());  
        }  
    }  

}

操作步骤:

1.启动安卓app
2.点击打开uniapp小程序首页
3.退出uniapp小程序首页
4.打开uniapp小程序页面
5.重复上述步骤,杀死app进程重来

预期结果:

首页出现白屏

实际结果:

首页出现白屏

bug描述:

我们app是安卓为底座,然后通过集成uni小程序sdk的方式;为了提高首屏速度,uniapp的首页使用nvue编写,发现有时候启动打开uniapp,或者多次退出/打开uniapp首页,会出现首页白屏现象,出现白屏时的时候能够侧滑退出uniapp,如果停留十几秒久一点侧滑也无法退出uniapp首页,我看每次出现这种情况AndroidStudio会有错误日志:onRenderError -1001,degradeToH5|createInstance fail|wx_create_instance_error isJSFrameworkInit==false reInitCount == 1;附件是我提交的最小复现demo以及视频文件。

注:因上传文件限制,上传的最小复现demo,里面安卓端的unisdk相关libs包已删除,下载后使用unisdk5.24 20260909补全必要的那几个包即可

2026-10-29 14:15 负责人:无 分享
已邀请:

要回复问题请先登录或注册