2013-01-12 36 views
5

在學習了從谷歌驅動器quickstart從android。我下載他們的例子,並得到這個錯誤:Android的記事本提供商classnotfound錯誤的谷歌驅動器sdk示例

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。我在這裏錯過了什麼?

回答

1

很可能你的Android版本是舊的,因爲這個ContentProvider.PipeDataWriter被添加到API 11向上又名蜂窩和更高版本。

請注意,在sample source

public class NotePadProvider extends ContentProvider 
          implements 
          PipeDataWriter<Cursor> { 
    // SNIP 
} 

關鍵線在研究樣本的AndroidManifest.xmloriginal source決定所需的SDK最低版本爲16(即Android的冰淇淋三明治或更高版本)

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

即使最低版本更改爲反映您當前的Android版本(例如Gingerbread的SDK 9,Froyo的8或Eclair的7),也會在較舊版本的Android上運行它,與ClassNotFoundException相似,因爲ContentProvider由於在早期版本的Android中不存在而未實現PipeDataWriter

0

嘗試以下操作:在 「額外」

  • 導入/演員/谷歌/ google_play_services/libproject到工作區從SDK管理器

    1. 下載google_play_services(它導入爲庫)
    2. 刪除google_play_services .jar從NotesList(google快速入門)
    3. 轉到項目屬性> Android>添加庫>添加google_play_services庫。
    4. 清潔和運行

    我想一定是某種問題的罐子,我只是做了(我有一些類似的錯誤,當我嘗試了PIC上傳快速啓動,這是該辦法解決它),它就像一個魅力。希望它有幫助:)

  • 相關問題