2012-01-12 68 views
3

所以我創建了一個簡單的內容提供商,但我得到了一個錯誤:自定義內容供應商:從模擬器錯誤(沒有找到供應商信息)

未能找到com.b1供應商信息。 BooksContentProvider

我有2.2 2點AVD的名稱和3.2版本(我寫了兩個人的隨機名稱)
3.2,因爲我用的是V4 Fragment支持
所以,我不知道是不是問題就來了從清單,或從我的版本唱歌推出模擬器。

這裏是我的清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.b1" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".MyBooksActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:mimeType="vnd.android.cursor.item/mt_books" /> 
       <data android:mimeType="vnd.android.cursor.dir/mt_books" /> 
      </intent-filter> 
     </activity> 
     <provider 
      android:authorities="com.b1.BooksContentProvider" 
      android:name="com.b1.BooksContentProvider"></provider> 

    </application> 

</manifest> 

和我的內容提供商的第一部分:

public class BooksContentProvider extends ContentProvider { 

    BooksDataBase mDB; 
    private static final String AUTHORITY = "com.b1.MyBooksActivity"; 
    private static final String BASE_PATH = "books"; 
    public static final Uri CONTENT_URI = Uri.parse("content:// " + AUTHORITY + "/" + BASE_PATH); 
    public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE 
     + "/mt_books"; 
    public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE 
     + "/mt_books"; 

    private static final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    private static final int BOOK_DIR = 101; 
    private static final int BOOK_ITEM = 102; 

    static 
    { 
     sURIMatcher.addURI(AUTHORITY, BASE_PATH, BOOK_DIR); 
     sURIMatcher.addURI(AUTHORITY, BASE_PATH+"/#", BOOK_ITEM); 
    } 

感謝您的幫助


UPDATE


確定,可能的錯誤之一是:
我忘了「進口」不同類別
此外,在片段XML:在的LinearLayout沒有在XML工作,我不得不把一個「TextView的」獨

回答

3
private static final String AUTHORITY = "com.b1.MyBooksActivity"; 

,你有你的<provider>元素是不一樣的權限:

<provider 
     android:authorities="com.b1.BooksContentProvider" 
     android:name="com.b1.BooksContentProvider"></provider> 

他們需要相匹配。

+0

謝謝,我編輯的代碼,但它很奇怪,我有同樣的錯誤。我清理了這個項目,重新啓動了eclipse,但仍然有同樣的錯誤。任何其他想法? – Paul 2012-01-12 21:50:23

+0

@保羅:離開我的頭頂,沒有。這個錯誤幾乎總是因爲CONTENT_URI /權限不匹配AFAIK。 – CommonsWare 2012-01-12 21:56:14

+0

好吧...你知道任何方式來調試嗎?另外,如果我複製並粘貼我的contentProvider的整個代碼來展示給你,它會有幫助嗎? – Paul 2012-01-12 22:12:26