uni-app安卓App在启动过程中白屏(一直停留在logo转圈界面)

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app安卓App在启动过程中白屏(一直停留在logo转圈界面)

错误日志

安卓通过运行linux shell脚本"am start cabinetapp.wasion/io.dcloud.PandoraEntryActivity"(其中cabinetapp.wasion是包名)来启动安卓App时,App在启动过程中卡在logo转圈界面。

注:已经通过npx uvm和npm update更新了。

linux打印错误如下:

12-29 19:26:55.291 1778 1778 E AndroidRuntime: FATAL EXCEPTION: main 12-29 19:26:55.291 1778 1778 E AndroidRuntime: Process: cabinetapp.wasion, PID: 1778 12-29 19:26:55.291 1778 1778 E AndroidRuntime: java.lang.IllegalArgumentException: Cannot parse iv:ciphertext:mac 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.e.f.a$a.<init>(Unknown Source:16) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.e.f.b.b(Unknown Source:27) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.e.f.b.a(Unknown Source:28) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.common.adapter.util.SP.getsBundleData(Unknown Source:3) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.feature.gg.AdSplashUtil.getAL(Unknown Source:1) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.feature.gg.dcloud.ADHandler.pull(Unknown Source:51) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.feature.gg.dcloud.AdFeatureImpl.doForFeature(Unknown Source:167) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.feature.gg.AdFeatureImplMgr.doForFeature(Unknown Source:5) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.a.a(Unknown Source:17) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at io.dcloud.b$a.run(Unknown Source:5) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7664) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 12-29 19:26:55.291 1778 1778 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)



1 回复

针对uni-app在安卓设备启动过程中出现的白屏问题(一直停留在logo转圈界面),这通常可能是由于多种原因导致的,包括但不限于资源加载过慢、代码执行阻塞、第三方插件冲突等。下面我将提供一个基本的代码案例和检查步骤,帮助你定位和解决问题。请注意,由于问题可能涉及多个方面,以下内容是一个起点,你可能需要根据实际情况进行调整。

1. 检查App.vue的生命周期函数

首先,确保App.vue中的onLaunchonShow等生命周期函数没有执行耗时的操作。

<script>
export default {
  onLaunch: function () {
    console.log('App Launch');
    // 确保这里没有耗时的操作
  },
  onShow: function () {
    console.log('App Show');
    // 确保这里没有耗时的操作
  },
  // 其他代码...
}
</script>

2. 检查首页组件的加载

首页组件(通常是pages/index/index.vue)的加载也可能导致白屏。确保该组件的onLoadmounted等钩子中没有耗时操作。

<script>
export default {
  onLoad: function () {
    console.log('Page Index Load');
    // 确保这里没有耗时的操作
  },
  mounted() {
    console.log('Page Index Mounted');
    // 确保这里没有耗时的操作
  },
  // 其他代码...
}
</script>

3. 异步资源加载

如果应用依赖网络请求或本地文件读取,确保这些操作是异步的,并且不会阻塞主线程。

async function fetchData() {
  try {
    const response = await uni.request({
      url: 'https://example.com/api/data',
      method: 'GET'
    });
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

// 在合适的生命周期函数中调用
onLoad() {
  fetchData();
}

4. 检查第三方插件

如果使用了第三方插件,尝试移除或更新这些插件,看是否可以解决问题。有时候,插件的兼容性问题或bug可能导致应用启动失败。

5. 调试和日志

利用uni-app提供的调试工具,查看控制台输出,定位可能的错误或警告信息。同时,检查Android日志(如使用adb logcat)以获取更详细的错误信息。

总结

上述步骤提供了一个基础的排查框架。如果问题依旧存在,建议逐步简化应用代码,直至找到问题根源。同时,确保使用的uni-app和所有依赖都是最新版本,以减少因版本不兼容导致的问题。

回到顶部