2012-01-12 7 views
3

は、だから私は、単純なコンテンツプロバイダを作成したが、私はエラーを持っている:カスタムコンテンツプロバイダ:エミュレータからのエラー(プロバイダーの情報を見つけることができなかった)

はcom.b1のプロバイダの情報を見つけることができませんでした。 BooksContentProvider

私はそうV4 Fragmentサポート
を使用しているため、問題が来れば、私にはわからない2.2と3.2のバージョンの2 AVD名(私はそれらの両方のためにランダムな名前を書いた)
3.2を持っていますマニフェストから、またはバージョンから私はあなたですエミュレーターを起動するために歌う。

ここに私のマニフェスト・ファイルです:

<?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


可能間違いの一つだった、[OK]を:
私がフラグメントXMLに、また、異なるクラスに「輸入」に
を忘れてしまった:のLinearLayoutは動作しませんでした、私はXMLでのみ「のTextView」を入れていました

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

は、彼らが一致する必要があります:あなたは<provider>要素を持っているのと同じ権限ではありません

答えて

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

+0

ありがとう、私はコードを編集しましたが、それは奇妙です、私は同じエラーがあります。私はプロジェクトをきれいにし、Eclipseを再起動しましたが、それと同じ正確なエラーです。他のアイデア? – Paul

+0

@Paul:私の頭の上から外れる、いいえ。このエラーは、ほとんど常に 'CONTENT_URI' /権限不一致、AFAIKのためです。 – CommonsWare

+0

大丈夫...これをデバッグする方法は分かりますか?また、あなたが私のcontentProviderのコード全体をコピーして貼り付けると助けになるでしょうか? – Paul

関連する問題