2012-01-03 37 views
5

Hace media hora abrí Eclipse para editar una aplicación de Google App Engine, anteriormente todo funcionaba bien, no había errores, no he actualizado nada (al menos no a sabiendas).¿Ya no puede usar JSONObject en Google App Engine (Java)?

me había importado: com.google.appengine.repackaged.org.json.JSONObject sin error, sin embargo, ahora me sale este error:

use of com.google.appengine.repackaged may result in your app breaking without warning

Nunca se ha roto antes, que venía con la descarga de Google App Engine para Eclipse, ¿por qué ha de repente comenzó ahora? ¿Y cómo puedo deshacerme de eso? (cambian que estaba haciendo era muy pequeño y rápido, sería bueno no tener que usar una biblioteca JSON diferente)

+0

Parece que volver a empaquetar no es compatible con la versión de GAE que tiene, es posible que deba probar con otra API de JSonObject compatible. – kosa

+0

@thinksteep, hasta donde yo sé, no he cambiado la versión, ¿cómo puedo hacer que lo soporte? –

+0

http://groups.google.com/group/google-appengine-java/browse_thread/thread/562b50bd40e8c2f7 Aquí hay algunos debates que pueden ser útiles. – kosa

Respuesta

8

com.google.appengine.repackaged.* contiene clases internas que no deben ser utilizadas por el código de la aplicación.

org.json se implementa por many libraries, por ejemplo JSON-Java. Simplemente incluya uno de ellos en su proyecto GAE.

2

En caso de que no quieren tener que entender todo esto a partir de primeros principios, aquí es un paso-a-paso:

  1. obtener el código fuente de https://github.com/douglascrockford/JSON-java (se puede descargar de la cremallera, el uso Git, etc.)
  2. Haga un directorio en su proyecto json/org/json y coloque las fuentes allí.
  3. Use "Refrescar" en Eclipse para que vea y compile el directorio.
  4. Cambiar toda la "importación com.google.appengine.repackaged.org.json.xxx;" para "importar org.json.xxx;" en su código

Desafortunadamente, esto agrega un montón de advertencias, pero parecen ser inofensivas.

+0

Buen consejo, pero no olvides agregar esa carpeta a 'Fuente' en las propiedades de compilación. –

4

AppEngine 1.8.4 uso

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

+0

No recibo ninguna advertencia sobre el uso de JSONObject proporcionado en este paquete. ¿Es probable que se modifique o elimine también? – Price

2

para deshacerse de El uso de com.google.appengine.repackaged puede resultar en que su aplicación rompiendo sin previo aviso. error simple declara tu clase con nombre completo del paquete. Soluciona tu problema

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

Cambiando mi importación a com.google.gson.Gson funcionó para mí.