Попытка использовать Google Tasks API на Android приводит к сбою моего приложения

Я пытаюсь создать простое приложение для Android с помощью API задач Google.
Однако, что бы я ни пытался изменить или включить, мое приложение компилируется нормально, но вылетает на телефоне всякий раз, когда я пытаюсь использовать API задач. < br> Все библиотеки находятся в моей папке libs, но я не могу найти, какие зависимости мне также нужно включить. Это мой текущий код, когда я удаляю комментарии к строкам задач, мое приложение вылетает сразу после открытия на телефоне.
Разъем для тестирования JacksonFactory не является ошибкой.
Проблема может заключаться в том, что я я вызываю новый GoogleAccessProtectedResource (null), который должен вызываться с помощью ключа авторизации oAuth?

package de.purespider.tasks;

import android.app.Activity;
import android.os.Bundle;

import com.google.api.client.extensions.android2.AndroidHttp;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
import com.google.api.client.googleapis.extensions.android2.auth.GoogleAccountManager;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.services.tasks.Tasks;
import com.google.api.services.tasks.model.Task;

import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class TasksActivity extends Activity
{
    private static final String TAG = "TasksSample";

    // This must be the exact string, and is a special for alias OAuth 2 scope
    // "https://www.googleapis.com/auth/tasks"
    private static final String AUTH_TOKEN_TYPE = "Manage your tasks";

    private static final String PREF = "MyPrefs";
    private static final int DIALOG_ACCOUNTS = 0;
    private static final int MENU_ACCOUNTS = 0;
    public static final int REQUEST_AUTHENTICATE = 0;

    private final HttpTransport transport = AndroidHttp.newCompatibleTransport();

    Tasks service;
    GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(null);

    // TODO(yanivi): save auth token in preferences?
    GoogleAccountManager accountManager;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        JacksonFactory jack = new JacksonFactory();
        //service = new Tasks(transport, accessProtectedResource, new JacksonFactory());
        //service.setKey(/* my auth key goes here */);
        //service.setApplicationName("tasks");

        accountManager = new GoogleAccountManager(this);
    }
}

Я использую netbeans (без maven) и пока не изменял свой AndroidManifest.xml вручную.

Изменить:
Библиотеки, которые я включаю через каталог libs проекта:

  • google-api-client-1.4.1-beta.jar
  • google-api-client-extensions-1.4.1-beta.jar
  • google-api-client-extensions-android2-1.4.1-beta.jar
  • google-api-client-googleapis-1.4.1-beta.jar
  • google-api-client-googleapis-extensions-1.4.1-beta.jar
  • google-api-client-googleapis-extensions-android2-1.4.1-beta.jar
  • google-api-services-tasks-v1-1.2.0-beta.jar gson-1.6.jar
  • гуава-r09.jar
  • httpclient-4.0.3.jar
  • Джексон-ядро-asl-1.6.7.jar

Спасибо за любую помощь заранее.


person PureSpider    schedule 19.09.2011    source источник


Ответы (2)


Обновление до бета-версии клиентских библиотек Google 1.5.0 исправило это, моя папка libs теперь выглядит так:

  • google-api-client-1.5.0-beta.jar
  • google-api-client-extensions-1.5.0-beta.jar
  • google-api-client-extensions-android2-1.5.0-beta.jar
  • google-api-services-tasks-v1-1.2.0-beta.jar
  • google-http-client-1.5.0-beta.jar
  • google-http-client-extensions-1.5.0-beta.jar
  • google-http-client-extensions-android2-1.5.0-beta.jar
  • google-oauth-client-1.5.0-beta.jar
  • Google-oauth-client-extensions-1.5.0-beta.jar
  • гуава-r09.jar
  • Джексон-ядро-asl-1.6.7.jar

Мне также пришлось добавить
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission> <uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
в свой AndroidManifest.xml - Надеюсь, это поможет любому, у кого такие же проблемы!
Также см. http://code.google.com/p/buzz-java-client/issues/detail?id=18 для справки.

person PureSpider    schedule 20.09.2011

У меня была такая же проблема с файлами 1.4.1. Решение для моей ситуации заключалось в следующем: щелкните правой кнопкой мыши мой проект, затем «Путь сборки»> «Настроить путь сборки», затем в разделе «Путь сборки Java» выберите все файлы jar и нажмите кнопку «ОК».

После этого я работал.

person CAM-Dev    schedule 01.08.2012