半小时前我打开Eclipse编辑一个Google App Engine应用程序,以前一切正常,没有错误,我没有更新任何内容(至少不知情)。
我已导入:com.google.appengine.repackaged.org.json.JSONObject
没有错误,但是现在我收到了这个错误:
use of com.google.appengine.repackaged may result in your app breaking without warning
以前从未打破过,它附带了Eclipse的Google App Engine下载,为什么它现在突然开始?我怎么能摆脱它呢? (他们所做的改变非常小而且很快,不必使用不同的JSON库会很好)
答案 0 :(得分:8)
com.google.appengine.repackaged.*
包含应用程序代码不应使用的内部类。
org.json
由many libraries实施,例如JSON-Java。只需在GAE项目中包含其中一个。
答案 1 :(得分:4)
AppEngine 1.8.4使用
com.google.appengine.labs.repackaged.org.json.JSONObject
答案 2 :(得分:2)
如果你不想从第一原则中弄清楚这一点,这里是一步一步:
不幸的是,这增加了许多警告,但它们似乎确实无害。
答案 3 :(得分:2)
要摆脱使用com.google.appengine.repackaged可能会导致您的应用无法发出警告。错误简单地使用完整包名称声明您的课程。它解决了你的问题。
com.google.appengine.repackaged.com.google.gson.JsonObject jsonObject =
new com.google.appengine.repackaged.com.google.gson.JsonObject();
答案 4 :(得分:0)
将我的导入更改为com.google.gson.Gson对我有用。
答案 5 :(得分:0)
包 com.google.appengine.repackaged.com.google.gson 。因此,以下语句
import com.google.appengine.repackaged.com.google.gson.Gson;
import com.google.appengine.repackaged.com.google.gson.GsonBuilder;
...
Gson gson = new GsonBuilder().create();
您会在appgengine日志中给您以下错误吗?
java.lang.NoClassDefFoundError: com/google/appengine/repackaged/com/google/gson/JsonElement
您需要改用新的Json库:
1)向您的gradle文件添加新的依赖项:
compile 'com.google.code.gson:gson:2.8.1'
2)替换
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;