Can';你不再在谷歌应用程序引擎(Java)中使用JSONObject了吗?

Can';你不再在谷歌应用程序引擎(Java)中使用JSONObject了吗?,java,google-app-engine,Java,Google App Engine,半小时前,我打开Eclipse编辑了一个Google应用程序引擎应用程序,以前一切都很好,没有错误,我没有更新任何东西(至少不是故意的) 我已经导入:com.google.appengine.repacked.org.json.JSONObject 没有错误,但是现在我得到了这个错误: 使用com.google.appengine.repacked可能会导致您的应用程序在没有警告的情况下中断 它以前从来没有坏过,它是为Eclipse下载谷歌应用程序引擎而来的,为什么它现在突然启动了呢?我怎样才能

半小时前,我打开Eclipse编辑了一个Google应用程序引擎应用程序,以前一切都很好,没有错误,我没有更新任何东西(至少不是故意的)

我已经导入:
com.google.appengine.repacked.org.json.JSONObject
没有错误,但是现在我得到了这个错误:

使用com.google.appengine.repacked可能会导致您的应用程序在没有警告的情况下中断


它以前从来没有坏过,它是为Eclipse下载谷歌应用程序引擎而来的,为什么它现在突然启动了呢?我怎样才能摆脱它呢?(我所做的更改非常小而且很快,不必使用不同的JSON库就好了)

com.google.appengine.repacked.
包含应用程序代码不应使用的内部类


例如,
org.json
由实现。只需在GAE项目中包含其中一个即可。

如果您不想从第一原则中完全理解这一点,请按以下步骤进行:

  • 从中获取源代码(您可以下载zip,使用Git等)
  • 在项目json/org/json中创建一个目录,并将源代码放在其中
  • 在Eclipse中使用“刷新”,以便它查看并编译目录
  • 将代码中的所有“import com.google.appengine.repacked.org.json.xxx;”更改为“import org.json.xxx;”
  • 不幸的是,这增加了很多警告,但它们似乎是无害的。

    AppEngine 1.8.4使用


    com.google.appengine.labs.repacked.org.json.JSONObject

    为了避免使用com.google.appengine.repacked可能会导致应用程序在没有警告的情况下中断。错误简单用完整包名声明类。它解决了你的问题

    com.google.appengine.repackaged.com.google.gson.JsonObject jsonObject = 
    new com.google.appengine.repackaged.com.google.gson.JsonObject();
    

    将导入更改为com.google.gson.gson对我很有效。

    Packagecom.google.appengine.repackaged.com.google.gson在最新的appengine版本中已被弃用。因此,有以下声明:

    import com.google.appengine.repackaged.com.google.gson.Gson;
    import com.google.appengine.repackaged.com.google.gson.GsonBuilder;
    ...
    Gson gson = new GsonBuilder().create();
    
    您是否会在AppGenEngine日志中显示以下错误:

    java.lang.NoClassDefFoundError: com/google/appengine/repackaged/com/google/gson/JsonElement
    
    您需要改用新的Json库:

    1) 将新的依赖项添加到gradle文件:

    compile 'com.google.code.gson:gson:2.8.1' 
    
    2) 替换


    您拥有的GAE版本似乎不支持重新打包,您可能需要尝试另一个受支持的JSonObject API。@ThinkStip,据我所知,我还没有更改版本,如何使它支持它?下面是一些可能有用的讨论。@ThinkStip,是的,我看到了,它是针对base64的。我在google群组列表上发布了一个类似的问题,但对于另一个jar,请参阅。实际上,该应用程序在部署后运行良好。建议不错,但别忘了将该文件夹添加到“生成属性”下的“源代码”中。我没有收到关于使用此包中提供的JSONObject的任何警告。它是否也可能被修改或删除?
    import com.google.appengine.repackaged.com.google.gson.Gson;
    import com.google.appengine.repackaged.com.google.gson.GsonBuilder;
    
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;