Документы Google: исключение NullPointerException в getActualParameterAtPosition, вызываемое parseAs

#android #google-api #google-api-java-client

#Android #google-api #google-api-java-client

Вопрос:

Я пытаюсь получить доступ к документам Google, используя библиотеку google-api-java-client. Я использую библиотеки, перечисленные ниже.

  • google-api-client-1.4.1-beta.jar
  • google-api-client-googleapis-1.4.1-beta.jar
  • google-api-client-googleapis-extensions-andr
  • guava-r09.jar

И я мог получить feed, но не смог разобрать, я получил исключение. Мой код похож;

 HttpTransport transport = new NetHttpTransport();
GoogleHeaders headers = new GoogleHeaders();
transport.defaultHeaders = headers;

headers.setApplicationName("hohoho-GoogleDocsTest/1.0");
headers.gdataVersion = "3";
headers.setGoogleLogin(authToken);

AtomParser parser = new AtomParser();
parser.namespaceDictionary = new XmlNamespaceDictionary();
transport.addParser(parser);

HttpRequest request = transport.buildGetRequest();
request.url = <GoogleUrl of "https://docs.google.com/feeds/default/private/full">
HttpResponse res = request.execute();
Feed feed = res.parseAs(Feed.class);    // <- got exception
  

И трассировка стека является:

 05-24 22:05:34.853: ERROR/AndroidRuntime(6830): Caused by: java.lang.NullPointerException
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.util.Types.getActualParameterAtPosition(Types.java:329)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.util.Types.getIterableParameter(Types.java:309)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.xml.Xml.parseElementInternal(Xml.java:417)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.xml.Xml.parseElement(Xml.java:198)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.http.xml.XmlHttpParser.parse(XmlHttpParser.java:72)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:298)
05-24 22:05:34.853: ERROR/AndroidRuntime(6830):     at net.DailyTimer.test.model.Feed.executeGet(Feed.java:24)
  

Я понятия не имел, почему он попал в исключение NullPointerException. Для меня ответ выглядит хорошо. Статус в порядке, код равен 200, есть много элементов, которые должны быть получены из документов.

Пожалуйста, скажите мне, что не так. Спасибо.

Ответ №1:

Для всех, кто просматривал мой вопрос, я сожалею, что я отказался от работы с Документами Google в моем приложении. Сначала я подумал, что могу загружать файлы любого типа в / из Документов Google, как мы можем с помощью веб-браузера. И в руководстве по протоколу четко указано, как это сделать. Но, к сожалению, оказалось, что с помощью API это может сделать только главный клиент Google Apps. Поэтому я не могу выполнить то, что я хочу сделать с Google Docs, даже если я могу обрабатывать эти API, которым помогают люди здесь. Я прекращу работу с Документами Google, поэтому, пожалуйста, простите меня, что я не могу нести ответственность за этот вопрос, который я задал.