uni-app 编译报错:exception function:createInstanceContext, exception

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

uni-app 编译报错:exception function:createInstanceContext, exception

项目属性
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本 11.7.7
HBuilderX类型 正式
HBuilderX版本 4.29
手机系统 Android
手机系统版本 Android 13
手机厂商 小米
手机机型 Xiaomi Redmi Note 12 Turbo
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

暂无

操作步骤:

  1. 点击“运行-运行到手机或模拟器-运行到Android App基座”
  2. 等待编译成功
  3. 随便编写一段代码

预期结果:

编写代码编译不报 reportJSException >>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught SyntaxError: Invalid or unexpected token

实际结果:

保存编译报错 reportJSException >>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught SyntaxError: Invalid or unexpected token

bug描述:

15:59:00.395 项目 ‘xxx’ 开始编译… 15:59:02.314 4.29 15:59:02.320 请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。 15:59:02.485 正在编译中… 15:59:14.506 nvue中不支持如下css。如全局或公共样式受影响,建议将告警样式写在ifndef APP-PLUS-NVUE的条件编译中,详情如下: 15:59:14.513 ERROR: Selector body is not supported. Weex only support classname selector at xx/xxx/xxx/index.nvue:27 16:01:02.492 项目 ‘xxx’ 编译成功。 16:01:02.503 WARNING: Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.511 Warning 16:01:02.531 (111:3) start value has mixed support, consider using flex-start instead 16:01:02.537 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.541 Warning 16:01:02.550 (129:3) start value has mixed support, consider using flex-start instead 16:01:02.551 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.561 Warning 16:01:02.570 (133:3) start value has mixed support, consider using flex-start instead 16:01:02.573 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.589 Warning 16:01:02.591 (140:3) start value has mixed support, consider using flex-start instead 16:01:02.599 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.609 Warning 16:01:02.619 (158:3) start value has mixed support, consider using flex-start instead 16:01:02.622 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.631 Warning 16:01:02.632 正在建立手机连接… 16:01:02.640 (45:3) start value has mixed support, consider using flex-start instead 16:01:02.662 Module Warning (from ./node_modules/postcss-loader/src/index.js): 16:01:02.665 Warning 16:01:02.679 (52:3) start value has mixed support, consider using flex-start instead 16:01:03.382 手机端调试基座版本号为3.0.45, 版本号相同,跳过基座更新 16:01:05.943 正在同步手机端程序文件… 16:01:09.548 同步手机端程序文件完成 16:01:10.703 正在启动自定义基座…

然后手机APP就会启动成功,然后随便编写一行代码,再保存编译,就会报错: 16:10:00.216 同步手机端程序文件完成 16:10:01.839 reportJSException >>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught SyntaxError: Invalid or unexpected token

神奇的是随便打一个空格并保存编译,这时又不保存了。。。

类似的情况发生过很多次,在HBuilderX3.x的时候也报过同样的BUG


2 回复

感谢反馈,你提到

然后手机APP就会启动成功,然后随便编写一行代码,再保存编译,就会报错

app 启动成功,到这里是正常的吧

之后修改代码,在编译会报错

这个在 HBuilderX 新建一个空项目是否会如此?HBuilderX 是最新的relase/alpha 吗,有尝试其他红米手机吗?如果可以请提供一个复现工程,我尝试 vue2 HBuilderX alpha 最新,运行页面 ok


面对uni-app编译报错,特别是涉及createInstanceContext这类内部函数错误时,通常意味着在组件实例化或上下文创建过程中出现了问题。这种问题可能由多种原因引起,包括但不限于代码中的错误、依赖问题、或是uni-app框架本身的bug。以下是一些可能帮助你定位并解决问题的代码示例和检查步骤,但请注意,由于无法直接看到你的项目代码,这些示例可能需要根据你的具体情况进行调整。

1. 检查组件定义

确保所有自定义组件都正确注册并在pages.jsonmanifest.json中正确引用。例如:

// components/MyComponent.vue
<template>
  <view>Hello, World!</view>
</template>

<script>
export default {
  name: 'MyComponent'
}
</script>

在页面中引用:

// pages/index/index.vue
<template>
  <view>
    <MyComponent />
  </view>
</template>

<script>
import MyComponent from '@/components/MyComponent.vue';

export default {
  components: {
    MyComponent
  }
}
</script>

2. 检查生命周期钩子

错误可能在组件的生命周期钩子中,比如createdmounted等。检查这些钩子中的代码是否有异常抛出或未正确处理异步操作。

export default {
  name: 'MyComponent',
  mounted() {
    try {
      // 可能抛出异常的代码
    } catch (error) {
      console.error('Mounted error:', error);
    }
  }
}

3. 依赖检查

确保所有依赖都已正确安装,特别是与uni-app相关的依赖。可以尝试重新安装依赖:

npm install

或者,如果你使用的是yarn:

yarn install

4. 清理和重建

有时候,简单的清理和重建项目可以解决缓存或构建过程中的问题。

# 清理dist目录
rm -rf dist

# 重新构建
npm run build

5. 查看控制台和日志

仔细查看编译过程中的控制台输出和日志文件,寻找可能的错误提示或警告信息。

6. 更新uni-app框架

如果问题依旧存在,考虑更新uni-app框架到最新版本,因为新版本可能已经修复了旧版本中的bug。

npm update @dcloudio/uni-app

通过上述步骤,你应该能够定位并解决大部分与createInstanceContext相关的编译错误。如果问题依旧无法解决,可能需要更详细的错误信息或考虑向uni-app社区或官方寻求帮助。

回到顶部