我在我的应用程序 list 中定义了一个提供者:
<provider
android:authorities="com.example.myapp.provider"
android:name="com.example.myapp.MyProvider">
</provider>
提供者只需要在应用程序中使用。但是当我尝试运行我的 Activity 时出现以下错误:
Failed to find provider info..
但如果我简单地在 list 中设置提供者的导出属性,它就可以完美地工作:
android:exported="true"
所以我的问题是为什么需要这样做?因为,根据文档 ( http://developer.android.com/guide/topics/manifest/provider-element.html#exported ),仅当提供程序可用于其他应用程序时才需要导出。我做错了什么吗?
[编辑]:令人惊讶的是,即使在删除导出的属性后,错误现在也消失了,没有进行任何其他更改。我不知道为什么它现在起作用了。可能是我这边的一些愚蠢的错误。我把这个问题悬而未决,希望能得到任何关于一定是哪里出了问题的线索。
[编辑]: 这次我又遇到了接收器的这个问题。所以这不是我的错误,正如我在之前的编辑中所假设的那样。我怀疑 ADT 构建工具有问题。
最佳答案
确保您的 <provider>
标签在 <application>...</application>
内标签。
<application>
...
<provider
android:authorities="com.ingamedeo.databasetest.contentprovider"
android:name=".db.ContentProviderDb"
android:exported="false">
</provider>
</application>
关于android - 是安卓 :exported ="true" required for internal use of content provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23977754/