【问题标题】:Failed to find provider info for ContentProvider未能找到 ContentProvider 的提供者信息
【发布时间】:2012-10-08 18:33:21
【问题描述】:

我看过一些类似的帖子,但我已经在我的AndroidManifest 中注册了ContentProvider

我有一个名为MyContentProviderContentProvider

MyContentProvider 位于一个名为MyProject 的库项目中。带有包裹位置personal.mobile.abc.angry.tiger.MyContentProvider


我的AndroidManifest 这个项目看起来像这样(省略了不相关的信息):

<application
    android:label=...
    android:icon=...
    android:theme=...>
    <provider
        android:name="personal.mobile.abc.angry.tiger.MyContentProvider"
        android:authorities="personal.mobile.abc.angry.tiger">
    </provider>
</application>


Lint 一直这样说:

The <provider> personal.mobile.abc.angry.tiger.MyContentProvider is not registered in the manifest.

当尝试运行包含 ContentProvider 的库的应用程序时,Logcat 会这样说:

Failed to find provider info for personal.mobile.abc.angry.tiger

我做错了什么?有什么问题?

如果您需要任何进一步的信息,请告诉我。

谢谢!

【问题讨论】:

  • 您在哪些项目中拥有&lt;provider&gt; 元素?图书馆?应用程序?两者都有?
  • &lt;provider&gt; 元素在包含ContentProvider 的项目中。图书馆。

标签: android android-manifest android-contentprovider


【解决方案1】:

您的&lt;provider&gt; 元素需要在应用程序中,因为它是带有ContentProvider 的元素。实现 ContentProvider 的 Java 类恰好位于 Android 库项目中这一事实并没有改变托管应用程序负责该提供程序这一事实。

最终——也许在 ADT 21 日——你在库项目中的&lt;provider&gt; 元素可以自动添加到你的应用程序项目中。现在,AFAIK,这个过程是手动的。

【讨论】:

  • 哇。我以为你只在图书馆需要它。感觉就像我以前在图书馆做过的一样。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多