获取java.lang.NoSuchFieldError:在GAE MemCache中使用ExperimentalRuntime

获取java.lang.NoSuchFieldError:在GAE MemCache中使用ExperimentalRuntime,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,每当我尝试访问MemCache时,我都会得到一个java.lang.NoSuchFieldError:usingExperimentalRuntime。我找不到关于这个领域的文档。是否有一些我不知道的配置选项 以下是源代码: MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService(); syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndConti

每当我尝试访问MemCache时,我都会得到一个
java.lang.NoSuchFieldError:usingExperimentalRuntime
。我找不到关于这个领域的文档。是否有一些我不知道的配置选项

以下是源代码:

MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.ALL));

Object cacheObject = syncCache.get("arbitrary");
最后一行因此错误而崩溃(部分堆栈跟踪到我的代码):

让这件事如此奇怪的是,代码在上周运行,并使用MemCache完成了单元测试。现在他们失败了。当然,我尝试过撤销我所做的一切,但没有成功:

  • 升级gcloud
  • 降级gcloud
  • 关闭所有其他服务器
  • 重新启动机器
  • 重置为上一个已知的良好代码版本

尝试将AppingineVersion更新到1.9.49

我们必须将所有内容都推到1.9.49才能正常工作。我不知道为什么Maven还没有在网站上列出它

就在那里,只是没有列出:

或者继续使用1.9.48(目前在云SDK中是现成的,下周升级到1.9.49),并确保您的pom.xml/gradle构建文件都使用1.9.48, 或者使用来自的标准appengine Maven插件


com.google.appengine
appengine maven插件
1.9.49

或者是AppEngine的等效Gradle插件(不是Cloud SDK之一)

我昨天做了一个更新,在发布原始帖子之前,它只把AppEngine java升级到了1.9.48版。python版本是1.9.49,但我没有使用python。我在哪里可以获得java引擎的1.9.49版本?我将gradle设置为在测试和开发服务器上都使用1.9.48,并且一切正常。谢谢在dev设置为使用最新版本(gradle中的“+”版本)和test设置为使用1.9.46之前。将两者都设置为1.9.49对开发服务器不起作用。不过,最新的稳定版本仍然有效。
Caused by: java.lang.NoSuchFieldError: usingExperimentalRuntime
        at com.google.appengine.api.memcache.MemcacheServicePb$MemcacheGetRequest.writeTo(MemcacheServicePb.java:1511)
        at com.google.appengine.repackaged.com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:41)
        at com.google.appengine.api.memcache.MemcacheServiceApiHelper.makeAsyncCall(MemcacheServiceApiHelper.java:97)
        at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.doGet(AsyncMemcacheServiceImpl.java:405)
        at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.getIdentifiable(AsyncMemcacheServiceImpl.java:422)
        at com.google.appengine.api.memcache.MemcacheServiceImpl.getIdentifiable(MemcacheServiceImpl.java:54)
        at com.myCode.CacheOrDbUtil.getUser(CacheOrDbUtil.java:27)
<plugin>
   <groupId>com.google.appengine</groupId>
   <artifactId>appengine-maven-plugin</artifactId>
   <version>1.9.49</version>
</plugin>