2011-07-22 7 views
4

を私はカスタムコンテンツプロバイダを作成しようとしていますし、私はエラーメッセージアンドロイドコンテンツプロバイダが不明なURLのコンテンツ提供します:// COM

不明URLのコンテンツを取得://com.example.test.samplecontentprovider/yay

私は私のマニフェストやコンテンツプロバイダ、私が間違っている可能性

<provider 
    android:authorities="com.example.test.samplecontentprovider" 
    android:multiprocess="true" 
    android:name="com.example.test.SampleContentProvider"></provider> 

AUTHORITY = "com.example.test.samplecontentprovider" 

に次の情報を持っているが、提案してください。

ここにもソースコードパッケージが含まれています。提供元から http://www.fileserve.com/file/p4eNVgK

+0

変更アンドロイド:.SampleContentProvider に名前http://stackoverflow.com/questions/6152713/my-android-contentprovider-cant-find-contentresolver/6153147#6153147 – Selvin

+0

すでに試しましたが、まだg同じエラー – Ramji

+0

プロバイダの 'public String getType(Uri uri)'をオーバーライドしましたか? – Selvin

答えて

4

プロジェクトを行きますfixin'

http://esilo.pl/Yea.zip

いくつかのこと... ルノーの答えは...しかし、そこに複数のエラー再:

// there is no such constructor ... Android looking for simple SampleContentProvider() 
//public SampleContentProvider(Context context){ 
// mContext=context; 
//} 

@Override 
public boolean onCreate() { 
    //so we move mContext initialization here 
    mContext = getContext(); 
    dbHelper = new DatabaseHelper(mContext); 
    return true; 
} 

次:

public static final class ContentProviderHelper { 
    private ContentProviderHelper() {} 
    //private static final String BASE_PATH = "yay"; we don't need it 
    public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); //you dont need it + "/" + BASE_PATH); 
    public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + 
                 "/vnd." + COMPANY_NAME + "." + TABLE_NAME;//yay it's stupid :P BASE_PATH; 
    public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + 
                "/vnd." + COMPANY_NAME + "." + TABLE_NAME;//yay it's stupid :P BASE_PATH; 
    public static final String ID = "_id"; 
    public static final String TITLE = "title"; 
    public static final String TEXT = "text"; 
} 
test.javaの次

Uri uri = getContentResolver().insert(
      // we should replace SampleContentProvider.ContentProviderHelper.CONTENT_URI with CONTENT_URI + TABLE_NAME 
      Uri.withAppendedPath(SampleContentProvider.ContentProviderHelper.CONTENT_URI, SampleContentProvider.TABLE_NAME), values); 
10

、あなたはAndroidManifest.xmlに設定プロバイダを定義する際にミスを犯している:あなたは、あなたのアプリケーションタグ内プロバイダを定義する必要があり、ここではすなわち

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".test" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
     <provider 
     android:authorities="com.example.test.samplecontentprovider" 
     android:multiprocess="true" 
     android:name="com.example.test.SampleContentProvider"></provider> 
</application> 
+0

これは良い答えです...しかし、いくつかのより多くのバグがあります – Selvin