【问题标题】:Google Contacts Data API on Android not working?Android 上的 Google 联系人数据 API 不起作用?
【发布时间】:2012-04-04 22:39:09
【问题描述】:

我尝试在 Android 上使用 Google Contacts Data API,更具体地说是 ContactsService 类,但在我尝试实例化 ContactsService 类时应用程序崩溃。

普通的 Java 应用程序没有这个问题。

例如,下面的代码工作正常

public class TestJava { 
    public static void main(String[] args) {        
        ContactsService myService = new ContactsService("TestApp");
        System.out.println("OK");       
    }   
}

但是,在 Android 应用程序下方崩溃(我将 Internet 权限放在清单中)

public class TestAndroidActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ContactsService myService = new ContactsService("TestApp");
        System.out.println("OK");

    }
}

有人知道 Google 联系人数据 API 是否适用于 Android 系统吗? 我错过了清单中的权限吗?

提前致谢。


编辑:

我在 Eclipse 中使用了两个项目来测试上面的代码:一个 Java 项目和一个 Android 项目。

两个项目共享相同的库,只有 Android 项目崩溃。

这里是错误信息:

09-10 12:12:43.928: INFO/AndroidRuntime(326): NOTE: attach of thread 'Binder Thread #3' failed
09-10 12:12:44.409: WARN/dalvikvm(332): Unable to resolve superclass of Lcom/google/gdata/client/contacts/ContactsService; (1133)
09-10 12:12:44.459: WARN/dalvikvm(332): Link of class 'Lcom/google/gdata/client/contacts/ContactsService;' failed
09-10 12:12:44.459: ERROR/dalvikvm(332): Could not find class 'com.google.gdata.client.contacts.ContactsService', referenced from method test34.pkg.Tests34Activity.onCreate
09-10 12:12:44.469: WARN/dalvikvm(332): VFY: unable to resolve new-instance 1142 (Lcom/google/gdata/client/contacts/ContactsService;) in Ltest34/pkg/Tests34Activity;
09-10 12:12:44.469: DEBUG/dalvikvm(332): VFY: replacing opcode 0x22 at 0x0008
09-10 12:12:44.469: DEBUG/dalvikvm(332): VFY: dead code 0x000a-0016 in Ltest34/pkg/Tests34Activity;.onCreate (Landroid/os/Bundle;)V
09-10 12:12:44.609: DEBUG/AndroidRuntime(332): Shutting down VM
09-10 12:12:44.609: WARN/dalvikvm(332): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
09-10 12:12:44.639: ERROR/AndroidRuntime(332): FATAL EXCEPTION: main
09-10 12:12:44.639: ERROR/AndroidRuntime(332): java.lang.NoClassDefFoundError: com.google.gdata.client.contacts.ContactsService
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at test34.pkg.Tests34Activity.onCreate(Tests34Activity.java:15)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.os.Looper.loop(Looper.java:123)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at java.lang.reflect.Method.invokeNative(Native Method)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at java.lang.reflect.Method.invoke(Method.java:521)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-10 12:12:44.639: ERROR/AndroidRuntime(332):     at dalvik.system.NativeStart.main(Native Method)
09-10 12:12:44.659: WARN/ActivityManager(59):   Force finishing activity test34.pkg/.Tests34Activity
09-10 12:12:45.159: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{450b53a0 test34.pkg/.Tests34Activity}
09-10 12:12:55.548: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{450b53a0 test34.pkg/.Tests34Activity}

【问题讨论】:

  • 粘贴崩溃的日志跟踪。
  • @Dolwolf 你有解决办法吗?

标签: android


【解决方案1】:

我认为你遇到了这种类型的错误

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps

您是否添加了 google-collect-1.0-rc1.jar 文件?如果没有,那么我确定你得到了错误,这是依赖文件。

您可以从this site 下载此文件并下载并添加到您的项目中。

【讨论】:

  • 不,我有 guava.jar,里面有 com/google/common/collect 地图,所以应该没问题。我收到的消息是: ERROR/AndroidRuntime(332): java.lang.NoClassDefFoundError: com.google.gdata.client.contacts.ContactsService 但我不确定问题出在库中。我在 Eclipse 中创建了两个项目:一个 Java 项目和一个 Android 项目,两个项目都有相同的库。只有 Android 项目崩溃了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多