我在 Metamask 上遇到错误“未检查的 runtime.lastError:无法建立连接”

Posted

技术标签:

【中文标题】我在 Metamask 上遇到错误“未检查的 runtime.lastError:无法建立连接”【英文标题】:I got error on Metamask 'Unchecked runtime.lastError: Could not establish connection' 【发布时间】:2021-12-20 12:50:57 【问题描述】:

我使用 svelte 创建 Web3 应用程序并遇到了一些错误

1.我已经在我的 index.html 中添加了 web3.js cdn

<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>

2.这是我在 .svelte 文件上的脚本,用于连接 Metamask 钱包

function connectWallet()
if(window.ethereum)
  window.web3 = new Web3(ethereum);
  window.ethereum.enable();
  metamaskConnected = window.ethereum.isConnected();
  web3.eth.getAccounts(function(error, accounts) 
    WalletAddress = accounts
    console.log(error)
  )

    当我第一次在 broser (Brave) 上打开我的网站时,我遇到了这个错误

    未经检查的 runtime.lastError:无法建立连接

脚本不工作

    我必须刷新我的页面,然后错误消失,我的代码才能正常工作

能给我一些建议吗,非常感谢

【问题讨论】:

【参考方案1】:

我在我的 dapp 上遇到了完全相同的问题,我需要进行更多调查,但它似乎发生在任何 Chromium 浏览器上,并且只有在单击 dapp url 同时打开浏览器时。

很奇怪的bug,可能是Metamask和Chromium浏览器通讯的问题

【讨论】:

以上是关于我在 Metamask 上遇到错误“未检查的 runtime.lastError:无法建立连接”的主要内容,如果未能解决你的问题,请参考以下文章

MetaMask - RPC 错误:权限请求已经挂起,在 Angular 10 中

MetaMask - RPC 错误:无法设置未定义的属性(设置“加载默认值”)错误

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

Web3/Metamask:错误:合约尚未部署到 Kovan 网络上检测到的网络(网络/工件不匹配)

如何使用 Web3.js 将 Metamask 连接到 Angular App?

当我在浏览器中切换 Metamask 地址时,Web3 getAccounts 不更新