android:content provider:服务在启动时崩溃 - 无法获取提供者传感器data.collector.Survey DbProvider

时间:2011-05-03 19:08:43

标签: android android-manifest android-contentprovider

我已经建立了自己的内容提供商。许多应用程序必须共享此数据库。

但是当我开始服务时它会崩溃。我在日志中甚至没有任何例外。

看起来像清单的问题,因为在我添加了标签已经开始提供商问题之后。

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> 

请帮忙。

2 个答案:

答案 0 :(得分:0)

权限缺少ContentProvider名称。它应该是:

<provider android:name="sensordata.collector.SurveyDbProvider"
          android:authorities="sensordata.collector.surveydbprovider" ... />

作为一种好的做法,你应该在提供者类中声明一个与此权限相匹配的CONTENT_URI常量。

答案 1 :(得分:0)

您的提供商是否有公共构造函数? sensordata.collector.SurveyDbProvider必须是可初始化的,所以它不能是例如抽象类。

如果您没有看到异常并且您正在使用Eclipse,请按F8,可能多次并检查您的LogCat