我已经看到了一些类似的帖子,但我已经在ContentProvider
注册了AndroidManifest
。
我有ContentProvider
名为MyContentProvider
。
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.
Logcat在尝试运行包含包含ContentProvider
的库的应用程序时说这个:
Failed to find provider info for personal.mobile.abc.angry.tiger
我做错了什么?有什么问题?
如果您需要任何进一步的信息,请告诉我。
谢谢!
答案 0 :(得分:6)
您的<provider>
元素必须位于应用程序中,因为它是ContentProvider
的元素。实现ContentProvider
的Java类碰巧在Android库项目中的事实并没有改变托管应用程序是负责该提供程序的事实。
最终 - 也许只要ADT 21 - 库项目中的<provider>
元素就可以自动添加到您的应用程序项目中。现在,AFAIK,这个过程是手动的。