Ruby On Rails: Bundler无法找到兼容的"json"宝石版本

4

我搜索过,但是现有的解决方案都无法解决我的问题,所以我创建了一个新的问题。

尝试启动服务器时出现错误。

Bundler无法找到与gem“json”兼容的版本:
在快照中(Gemfile.lock):
json(= 1.8.6)

Gemfile中:rails(= 4.2.4)x86-mingw32已解析为4.2.4,
依赖于 activesupport(= 4.2.4)x86-mingw32已解析为4.2.4,
其依赖于json(≥1.7.7,〜> 1.7)x86-mingw32

Gemfile source 'https://rubygems.org'

 gem 'rails', '4.2.4'
 gem 'activerecord-jdbcpostgresql-adapter'
 gem 'sass-rails', '~> 5.0'
 gem 'uglifier', '>= 1.3.0'
 gem 'coffee-rails', '~> 4.1.0'
 gem 'therubyrhino'
 gem 'jquery-rails'
 gem 'jbuilder', '~> 2.0'
 gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Gemfile.lock 片段

 GEM
   remote: https://rubygems.org/
   specs:
  activesupport (4.2.4)
       i18n (~> 0.7)
       json (~> 1.7, >= 1.7.7)
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)

  json (1.8.6-java)

我尝试的方法:

  • 删除Gemfile.lock并运行bundle install

  • 在Gemfile中添加json

  • 将Gemfile.lock中的两个json设置为1.8.6-java

Bundler无法找到与gem“json”兼容的版本: 在快照(Gemfile.lock)中:
json(= 1.8.6)

在Gemfile中:
rails(= 4.2.4)x86-mingw32已解析为4.2.4,
它依赖于activesupport(= 4.2.4)x86-mingw32已解析为4.2.4,
它依赖于json(= 1.8.6)x86-mingw32

删除Gemfile.lock中的json(1.8.6-java)

但这些都没有起作用。

3个回答

2
很不幸,我没有足够的声望来发表评论提问,所以我无法询问您在将其添加到gemfile时指定的json版本或者在gemfile中指定它的位置(请参见此SO线程)。但是我猜测您的其他依赖项之一正在下载1.8.6版本,这与您的Active Support版本指定的~>1.7.7版本不一致。
我的建议是尝试显式地要求。
json (~> 1.7, >= 1.7.7)

在你的Gemfile的末尾在其他东西加载之前。如果其他东西正在尝试加载一个更近期的json版本,你应该会收到不同的错误消息;你可能需要指定早期版本的gem来下载冲突的版本。

抱歉,无法检查,因为我从头重新创建了项目,但是关于加载顺序的观点似乎是合理的。谢谢。 - Alexander Kozachenko

0

只需做

bundle update

这对我有效


很遗憾,对我来说不行。 - Alexander Kozachenko
尝试以下步骤:1.删除Gem.lock文件2.在gemfile中添加gem 'json'3.运行bundle update命令4.运行bundle install命令。希望这样可以解决问题。 - DevMasterAryan
谢谢关注,但我之前尝试过了,没有帮助。我还尝试指定版本,但也没有用。我又重新创建了项目,现在它神奇地可以工作了。 - Alexander Kozachenko

0
当您运行bundle update来更新您的gems时,它会一次性更新所有的gems。如果您的应用程序停止工作或测试开始失败,那么很难确定哪个gem更新导致了问题。
您可能认为bundle update gem_name只会更新该gem及其依赖项。
注意:bundle update --source gem_name仅更新该gem。

更新成功,但没有效果。这是一个空项目。 - Alexander Kozachenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接