简体   繁体   English

尝试在Android上使用Google Tasks API会使我的应用崩溃

[英]Trying to use Google Tasks API on android keeps my app crashing

I'm trying to build a simple todo app for Android using the Google Tasks API. 我正在尝试使用Google Tasks API为Android构建一个简单的待办事项应用程序。
However, whatever I try and change or include, my app compiles fine but crashes on the phone whenever I try to use the tasks API. 但是,无论我尝试更改或包含什么内容,我的应用程序都可以正常编译,但是每当我尝试使用任务API时,电话都会崩溃。
All the libraries are in my libs folder but I can't fand what dependencies I also need to include. 所有的库都在我的libs文件夹中,但是我无法幻想还需要包含哪些依赖项。 This is my current code, once I remove the comments of the tasks lines my app crashes right after opening on the phone. 这是我当前的代码,一旦我删除了任务行的注释,我的应用程序就会在手机上打开后立即崩溃。
The jack thing is for testing the JacksonFactory is not the fault. 杰克的事情是测试杰克逊工厂不是故障。
The problem might be that I am calling new GoogleAccessProtectedResource(null) which has to be called with an oAuth authkey? 问题可能是我正在调用新的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);
    }
}

I am using netbeans (without maven) and didn't modify my AndroidManifest.xml by hand, yet. 我正在使用netbeans(没有maven),但是还没有手动修改AndroidManifest.xml。

Edit: 编辑:
The libraries I'm including via the project's libs dir are: 我通过项目的libs目录包含的库是:

  • google-api-client-1.4.1-beta.jar google-api-client-1.4.1-beta.jar
  • google-api-client-extensions-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-extensions-android2-1.4.1-beta.jar
  • google-api-client-googleapis-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-1.4.1-beta.jar
  • google-api-client-googleapis-extensions-android2-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 google-api-services-tasks-v1-1.2.0-beta.jar gson-1.6.jar
  • guava-r09.jar 番石榴-r09.jar
  • httpclient-4.0.3.jar httpclient-4.0.3.jar
  • jackson-core-asl-1.6.7.jar 杰克逊核心-asl-1.6.7.jar

Thanks for any help in advance. 感谢您的任何帮助。

Upgrading to Google Client libraries 1.5.0 beta fixed it, my libs folder now looks like so: 升级到Google Client Library 1.5.0 beta后,我的libs文件夹看起来像这样:

  • google-api-client-1.5.0-beta.jar google-api-client-1.5.0-beta.jar
  • google-api-client-extensions-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-client-extensions-android2-1.5.0-beta.jar
  • google-api-services-tasks-v1-1.2.0-beta.jar google-api-services-tasks-v1-1.2.0-beta.jar
  • google-http-client-1.5.0-beta.jar google-http-client-1.5.0-beta.jar
  • google-http-client-extensions-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-http-client-extensions-android2-1.5.0-beta.jar
  • google-oauth-client-1.5.0-beta.jar google-oauth-client-1.5.0-beta.jar
  • google-oauth-client-extensions-1.5.0-beta.jar google-oauth-client-extensions-1.5.0-beta.jar
  • guava-r09.jar 番石榴-r09.jar
  • jackson-core-asl-1.6.7.jar 杰克逊核心-asl-1.6.7.jar

I also had to add 我还必须添加
<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>
to my AndroidManifest.xml 到我的AndroidManifest.xml
Hope that helps anyone out there having the same problems! 希望能帮助任何遇到同样问题的人!
Also see http://code.google.com/p/buzz-java-client/issues/detail?id=18 for reference. 另请参阅http://code.google.com/p/buzz-java-client/issues/detail?id=18以供参考。

I had the same problem with the 1.4.1 files. 1.4.1文件存在相同的问题。 The solution for my situation was to: Right click my project, then Build Path>Configure Build Path, then under Java Build Path, select all of the jar files, then press the OK button. 针对我的情况的解决方案是:右键单击我的项目,然后依次单击“构建路径”>“配置构建路径”,然后在“ Java构建路径”下,选择所有jar文件,然后按“确定”按钮。

After that, I worked. 之后,我工作了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM