[英]android: content provider : Service crashes on staring - Unable to get provider sensordata.collector.SurveyDbProvider
我已经建立了自己的内容提供商。 许多应用程序必须共享此数据库。
但是当我启动我的服务时它崩溃了。 我什至没有在日志中发现任何异常。
看起来像清单的问题,因为在我添加了与提供者相关的标签之后,问题就开始了。
Package:sensordata.collector
Clas name : SurveyDbProvider [SurveyDbProvider extends ContentProvider]
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sensordata.collector"
android:versionCode="1"
android:versionName="1.0">
<permission
android:name="sensordata.collector.SURVEY_DATA.permission.READ"
android:label="@string/perm_label"
android:description="@string/perm_label" />
<permission
android:name="sensordata.collector.SURVEY_DATA.permission.WRITE"
android:label="@string/perm_label"
android:description="@string/perm_label" />
<uses-permission android:name="sensordata.collector.SURVEY_DATA.permission.WRITE" />
<uses-permission android:name="sensordata.collector.SURVEY_DATA.permission.READ" />
In application tag :
<provider android:name="sensordata.collector.SurveyDbProvider"
android:authorities="sensordata.collector"
android:readPermission="sensordata.collector.SURVEY_DATA.permission.READ"
android:writePermission="sensordata.collector.SURVEY_DATA.permission.WRITE" />
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>
请帮忙。
您的提供者是否有公共构造函数? sensordata.collector.SurveyDbProvider 必须是可初始化的,因此它不能是例如抽象 class。
如果您没有看到异常并且您正在使用 Eclipse,请按 F8,可能多次并检查您的 LogCat
权限缺少 ContentProvider 名称。 它应该是:
<provider android:name="sensordata.collector.SurveyDbProvider"
android:authorities="sensordata.collector.surveydbprovider" ... />
作为一种好的做法,您应该在提供者 class 中声明一个与此权限匹配的 CONTENT_URI 常量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.