谷歌驱动器sdk示例中未找到Android记事本提供程序类错误

时间:2013-01-12 14:45:16

标签: java android google-drive-api

从android学习google drive quickstart之后。我下载了他们的例子并得到了这个错误:

01-13 03:38:39.039: E/AndroidRuntime(29967): java.lang.RuntimeException: Unable to get provider com.example.android.notepad.NotePadProvider: java.lang.ClassNotFoundException: com.example.android.notepad.NotePadProvider in loader dalvik.system.PathClassLoader[/data/app/com.example.android.notepad-1.apk]
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.installProvider(ActivityThread.java:3561)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.installContentProviders(ActivityThread.java:3313)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3269)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.access$2200(ActivityThread.java:117)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.os.Looper.loop(Looper.java:130)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.main(ActivityThread.java:3687)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at java.lang.reflect.Method.invokeNative(Native Method)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at java.lang.reflect.Method.invoke(Method.java:507)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at dalvik.system.NativeStart.main(Native Method)
01-13 03:38:39.039: E/AndroidRuntime(29967): Caused by: java.lang.ClassNotFoundException: com.example.android.notepad.NotePadProvider in loader dalvik.system.PathClassLoader[/data/app/com.example.android.notepad-1.apk]
01-13 03:38:39.039: E/AndroidRuntime(29967):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 03:38:39.039: E/AndroidRuntime(29967):    at android.app.ActivityThread.installProvider(ActivityThread.java:3546)
01-13 03:38:39.039: E/AndroidRuntime(29967):    ... 12 more

我按照说明here。我在这里错过了什么?

2 个答案:

答案 0 :(得分:1)

您的Android版本可能很旧,因为此ContentProvider.PipeDataWriter已添加到API 11向上,也就是Honeycomb及更高版本。

注意sample source

中的关键行
public class NotePadProvider extends ContentProvider 
                            implements 
                            PipeDataWriter<Cursor> {
    // SNIP 
}

查看示例AndroidManifest.xml的{​​{3}},要求所需SDK的最低版本为16(即安卓冰淇淋三明治或更高版本)

<uses-sdk android:minSdkVersion="16" />

在较旧版本的Android上运行它,即使最低版本已更改以反映您当前的Android版本,例如Gingerbread的SDK 9,Froyo的8或Eclair的7,它将会失败{{1}因为ClassNotFoundException未实现ContentProvider,因为在早期版本的Android中不存在。

答案 1 :(得分:0)

尝试以下方法:

  1. 从SDK管理器下的“extras”
  2. 下载google_play_services
  3. 将/ extras / google / google_play_services / libproject导入您的工作区(它作为库导入)
  4. 从NotesList(谷歌快速入门)
  5. 删除google_play_services.jar
  6. 转到项目属性&gt; Android&gt;添加库&gt;添加google_play_services库。
  7. 清理并运行
  8. 我想jar一定存在某种问题,我刚刚完成了(当我尝试上传快速启动时我有一些类似的错误,这就是解决它的方法)它就像一个魅力。希望它有所帮助:)