2011-09-19 58 views
0

我正尝试使用Google Tasks API为Android构建一个简单的待办事项应用程序。
但是,无论我尝试更改或包含,我的应用程序编译都很好,但每次尝试使用任务API时都会在手机上崩溃。
所有的库都在我的libs文件夹中,但我无法展示我还需要包含哪些依赖关系。 这是我当前的代码,一旦我在手机上打开后,我的应用程序崩溃,我删除了任务行的注释。
杰克的事情是测试JacksonFactory不是故障。
问题可能是我正在调用新的GoogleAccessProtectedResource(null),它必须使用oAuth authkey调用?试图在Android上使用Google Tasks API使我的应用程序崩溃

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目录的图书馆是:

  • 谷歌的API客户端-1.4.1-beta.jar
  • 谷歌的API客户端的扩展-1.4.1-beta.jar
  • 谷歌-API的客户端 - 扩展 - android2-1.4.1-beta.jar
  • 谷歌-API的客户端 - googleapis-1.4.1-beta.jar
  • 谷歌-API客户端 - googleapis的扩展-1.4.1-beta.jar
  • 谷歌的API客户端 - googleapis的扩展,android2-1.4.1-beta.jar
  • 谷歌的API服务任务,v1-1.2.0-beta.jar GSON-1.6.jar
  • 番石榴r09.jar
  • 的HttpClient-4.0.3.jar
  • 杰克逊核心ASL-1.6.7.jar

感谢提前任何帮助。

回答

3

升级到谷歌Client库1.5.0测试版修复它,我的libs文件夹现在看起来像这样:

  • 谷歌的API客户端-1.5.0-beta.jar
  • 谷歌-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。罐子
  • 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
  • 谷歌,OAuth的客户扩展-1.5.0-beta.jar
  • 番石榴r09.jar
  • 杰克逊核心ASL-1.6.7。罐子

我也不得不
<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以供参考。

0

我对1.4.1文件有同样的问题。我的解决方案是: 右键单击我的项目,然后单击Build Path> Configure Build Path,然后在Java Build Path下,选择所有jar文件,然后按下OK按钮。

之后,我工作。

相关问题