【问题标题】:Creating & using ContentProvider for android为 Android 创建和使用 ContentProvider
【发布时间】:2010-12-10 00:57:04
【问题描述】:

当我调用 Android ContentProvider 时,出现以下异常:

java.lang.RuntimeException: 无法 开始活动 组件信息{de.harm.android.couchone/de.harm.android.couchone.CouchContactClient}: java.lang.IllegalArgumentException: 未知网址 内容://de.harm.android.couchone.provider/test2

这些是项目:

Android 使用所谓的ContentResolverContentProvider 通信,后者又处理持久性功能——访问数据库。

ContentProvider 使用唯一的 Uri 注册自己。 ContentResolver 使用此 Uri 调用 ContentProvider 并传递其他数据,例如 SQL 查询字符串和/或要保存的数据。

CouchOneProvider/AndroidManifest.xml我有以下内容:

<provider android:authorities="de.harm.android.couchone.provider"
   android:name=".Provider" />

提供者使用

static {
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    uriMatcher.addURI(PROVIDER_NAME, DB_Name, URI_COLLECTION);
    uriMatcher.addURI(PROVIDER_NAME, DB_Name + "/#", URI_ENTITY);
}

public static boolean isCollectionUri(Uri uri) {
    return uriMatcher.match(uri) == URI_COLLECTION;
}

处理ContentResolver使用的CONTENT_URI调用ContentProvider

  • 我是否缺少AndroidManifest.xml 中的任何一个权限?
  • 我在AndroidManifest.xml 中定义的权限是否错误?
  • CONTENT_URI 错了吗?

更新:

我有更多信息:

Logcat 说:

未能找到提供者信息 de.harm.android.couchone.provider

这应该是起点。但到目前为止我找不到任何解决方案。

ContentProvider 实现的完全限定类名是:

de.harm.android.couchone.Provider

AndroidManifext.xml 中,这被指定为权限,除了名称是小写的,但这应该没问题。

包名是之前在xml文件中定义的,所以“.Provider”也应该没问题。

从异常中可以看出,客户端调用:

content://de.harm.android.couchone.provider/test2

Logcats 的答案是:

未能找到 de.harm.android.couchone.provider 的提供者信息

我看不出缺少什么,可能是 Eclipse 或模拟器问题?

我将提供程序安装为“将项目作为 Android 应用程序运行”。

【问题讨论】:

    标签: android couchdb android-contentprovider android-contentresolver couchone


    【解决方案1】:

    我已经解决了这个问题:

    两个项目具有相同的包结构。我将de.harm.android.couchone 更改为de.harm.android.couchone.providerde.harm.android.couchone.client

    【讨论】:

      【解决方案2】:

      我认为此链接与问题主题有关。如何实现a custom content-provider

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 2011-10-05
        • 2014-07-15
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多