Не можете больше использовать JSONObject в Google App Engine (Java)? - PullRequest
5 голосов
/ 03 января 2012

Полчаса назад я открыл 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

Это никогда не ломалось раньше, оно пришло с загрузкой Google App Engine для Eclipse, почему это внезапно началось сейчас? И как от этого избавиться? (они менялись очень быстро и быстро, было бы неплохо не использовать другую библиотеку JSON)

Ответы [ 6 ]

8 голосов
/ 04 января 2012

com.google.appengine.repackaged.* содержит внутренние классы, которые не должны использоваться кодом приложения.

org.json реализовано многими библиотеками , например JSON-Java ,Просто включите один из них в ваш проект GAE.

4 голосов
/ 02 октября 2013

AppEngine 1.8.4 use

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

2 голосов
/ 22 марта 2016

Чтобы избавиться от Использование com.google.appengine.repackaged может привести к разрыву приложения без предупреждения. Ошибка, просто объявите свой класс с полным именем пакета . Это решит вашу проблему.

com.google.appengine.repackaged.com.google.gson.JsonObject jsonObject = 
new com.google.appengine.repackaged.com.google.gson.JsonObject();
2 голосов
/ 05 мая 2012

В случае, если вам не нужно разбираться во всех этих принципах, вот пошаговое руководство:

  1. Получите исходники от https://github.com/douglascrockford/JSON-java (вы можете скачать zip, использовать Git и т. Д.)
  2. Создайте каталог в вашем проекте json / org / json и поместите туда исходники.
  3. Используйте «Обновить» в Eclipse, чтобы он видел и компилировал каталог.
  4. Изменить все "import com.google.appengine.repackaged.org.json.xxx;" "импортировать org.json.xxx;" в вашем коде

К сожалению, это добавляет много предупреждений, но они кажутся безвредными.

0 голосов
/ 08 августа 2018

Пакет com.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();

выдаст ли вам следующую ошибку в журналах 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; 
0 голосов
/ 18 октября 2016

Изменение моего импорта на com.google.gson.Gson сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...