android - 是安卓 :exported ="true" required for internal use of content provider

标签 android android-contentprovider

我在我的应用程序 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/

相关文章:

android - Android 上的 Kafka 生产者

javascript - android 2.3 中 datalist 内选项标签的数量

android - ImageButton 增加点击区域

android - 内容解析器 notifyChange() 不工作

android - 无法使用 ContentProvoider 更新联系人

android - Android SDK 管理器中未显示的其他 Android API

android - withValueBackReference 的语义是什么?

当通过批处理操作插入多行时,Android ContentProvider 会调用 setNotificationUri() 到 CursorAdapter

android重复提供者权限

android - 如何在 Android 设备中创建 Web 服务器(用于远程访问)