执行cucumber版本命令失败,calabash-android激活遇json版本冲突
解决Calabash-Android 0.9.2激活失败的JSON版本冲突问题
我之前也碰到过类似的Gem版本冲突问题,尤其是老版本的Calabash-Android对依赖的版本限制比较严格,给你几个可行的解决办法:
方法一:用Bundler锁定项目依赖版本
这是最稳妥的方案,能彻底避免全局Gem版本混乱:
- 在项目根目录创建
Gemfile文件,写入以下内容:source 'https://rubygems.org' gem 'calabash-android', '0.9.2' gem 'json', '~> 1.8' - 执行命令安装项目专属的依赖包:
bundle install - 之后运行Calabash-Android时,通过bundle启动来确保使用锁定的版本:
bundle exec calabash-android run your_apk_file.apk
方法二:全局调整JSON版本适配Calabash-Android
如果不想用Bundler,可以直接修改全局Gem版本:
- 卸载冲突的高版本JSON:
gem uninstall json -v 2.1.0 - 安装符合Calabash-Android要求的1.8系列版本(比如1.8.7):
gem install json -v 1.8.7 - 再次尝试激活Calabash-Android:
gem activate calabash-android -v 0.9.2
方法三:尝试升级Calabash-Android到较新版本
0.9.2是比较老旧的版本,后续更新的版本大概率已经放宽了依赖限制,你可以试试更新到新一点的稳定版本:
gem install calabash-android --update
如果同时维护多个需要不同Gem版本的项目,强烈推荐使用Bundler,它能为每个项目独立维护依赖环境,从根源上解决版本冲突问题。
内容的提问来源于stack exchange,提问作者Ahmed Eltaher
相关产品推荐
相关产品推荐

