Программа работает из визуальной студии, но не из exe

, но кажется, что все правильно

Не совсем.

<permission android:name="READ_DATABASE" android:label="@string/app_read"       android:protectionLevel="normal"></permission>
<permission android:name="WRITE_DATABASE" android:label="@string/app_write" android:protectionLevel="normal"></permission>

Во-первых, вы действительно действительно действительно действительно должны помещать пространство имен по этим именам разрешений. Сделайте их com.company.contentprovider.READ_DATABASE и com.company.contentprovider.WRITE_DATABASE.

<provider android:name="AplicacaoContentProvider"
    android:authorities="com.company.contentprovider"
    android:exported="true"
    android:readPermission="@string/app_read"
    android:writePermission="@string/app_write"
   />

Во-вторых, ваши android:readPermission и android:writePermission значения должны использовать значение android:name от <permission>, а не android:label. android:label - только отображаемое имя. Таким образом, приведенный выше фрагмент должен быть:

<provider android:name="AplicacaoContentProvider"
    android:authorities="com.company.contentprovider"
    android:exported="true"
    android:readPermission="com.company.contentprovider.READ_DATABASE"
    android:writePermission="com.company.contentprovider.WRITE_DATABASE"
   />

(хотя бонусные баллы для явного ввода android:exported="true", что является хорошей идеей)

<uses-permission android:name="android.permissions.READ_DATABASE"/>
<uses-permission android:name="android.permissioms.WRITE_DATABASE"/>

В-третьих, ваш другой манифест не использует ваши старые android:name, а также мои предложенные исправленные android:name или android:label, но что-то еще полностью, где вы решили сказать, что они находятся в пространстве имен android.permission, а это не так. Это должно быть:

<uses-permission android:name="com.company.contentprovider.READ_DATABASE"/>
<uses-permission android:name="com.company.contentprovider.WRITE_DATABASE"/>

(хотя возможно, что com.company.contentprovider.WRITE_DATABASE будет достаточным - я не знаю, будет ли android:writePermission автоматически подразумевать android:readPermission или нет)

Внесите эти изменения, и я думаю, вам повезет больше.

0
задан iol 25 February 2015 в 07:06
поделиться