Android端WalletConnect Sign Client初始化及连接MetaMask报错求助
Android WalletConnect 初始化异常及 AppMetaData 配置问题
一、解决 NoSuchMethodError 异常
这个错误的核心原因是WalletConnect各组件依赖版本不兼容,尤其是Core与Sign客户端的版本必须严格一致——内部接口(如JsonRpcInteractorInterface)在不同版本中存在变动,版本不匹配会导致方法找不到的报错。
解决步骤:
- 统一WalletConnect依赖版本:确保项目中
core、sign等WalletConnect相关库使用完全相同的版本,示例Gradle依赖:implementation "com.walletconnect:core:2.10.0" implementation "com.walletconnect:sign:2.10.0" - 清理构建缓存:执行
./gradlew clean后重新构建项目,避免旧版本类文件残留。 - 排查依赖冲突:通过
./gradlew dependencies查看依赖树,排除第三方库间接引入的不同版本WalletConnect组件。
二、Core.Model.AppMetaData 字段说明及钱包URL问题
字段正确填写规则
AppMetaData 是用来描述你的应用(而非MetaMask钱包)的元数据,连接时会展示给MetaMask用户,字段需按自身应用信息填写:
name: 你的应用名称,例如"My Web3 DApp",不要填写"Metamask"description: 应用的简短功能描述,例如"一站式Web3资产管理工具"url: 你的应用官方网站URL,例如"https://my-dapp.com",此处并非钱包URL,而是你应用的地址icons: 应用图标在线URL列表,例如listOf("https://my-dapp.com/app-icon.png"),需提供可公开访问的图片链接,MetaMask会显示该图标redirect: 应用的跳转Scheme,需与AndroidManifest中注册的Scheme一致,用于MetaMask连接成功后回调你的应用,示例配置需在Manifest中添加对应<intent-filter>:<activity android:name=".YourCallbackActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="kotlin-wallet-wc" /> </intent-filter> </activity>
关于钱包URL的误解
你无需获取MetaMask的URL,AppMetaData的url字段仅需填写自身应用的官网地址。MetaMask作为钱包端,其元数据由WalletConnect自动识别,无需手动配置。
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

