Проявляется и использует разрешения

#android #android-manifest #manifest #android-permissions

#Android #android-манифест #манифест #android-разрешения

Вопрос:

Мне нужно создать проект Android (никогда раньше ничего не развертывал на Android). Сборка проекта не работает. AndroidManifest.xml внутри instant-run , попадая внутрь тегов <application> tag <uses-permission> . Который не будет работать — это не разрешено документами Google.

Мой основной манифест выглядит следующим образом:

 <manifest package="xxx"
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
        android:networkSecurityConfig="@xml/network_security_config"
        tools:replace="android:allowBackup"
        android:name="XXX"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".WebViewActivity"
            android:label="@string/title_activity_web_view"
            android:theme="@style/AppTheme.NoActionBar"
            android:configChanges="orientation|screenSize"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data
            android:name="io.fabric.ApiKey"
            android:value="xxx"
            />
    </application>

</manifest>
  

Версия сборки:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pl.touspolska.mobile"
    android:versionCode="7"
    android:versionName="1.0.2" >

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="26" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <!-- Permissions required for GCM -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <application
        android:name="XXX.TousPolskaApplication"
        android:allowBackup="false"
        android:debuggable="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:testOnly="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name="XXX.WebViewActivity"
            android:configChanges="orientation|screenSize"
            android:label="@string/title_activity_web_view"
            android:launchMode="singleTask"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

...
// HERE IS ERROR!!!!
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

        <permission
            android:name="XXX.permission.C2D_MESSAGE"
            android:protectionLevel="signature" />

        <uses-permission android:name="XXX.permission.C2D_MESSAGE" />
// ERROR ABOVE !!!!
....
</application>
  

ОШИБКА
Сбой связывания ресурсов Android — он указывает на те 3 строки, которые находятся между комментариями к ошибке

Как мы можем видеть, у него есть werid uses-permissions . Кто-нибудь знает, что включает эти устаревшие теги внутри manifest?

Комментарии:

1. Есть ли у вас другие модули в вашем проекте?

2. Существует только один.

3. Любая библиотека, которую вы объявляете в разделе зависимостей вашего приложения build.gradle файл может добавить что-то к вашему манифесту. Это называется слиянием манифеста developer.android.com/studio/build/manifest-merge

4. Если вы используете Android Studio, откройте свой AndroidManifest.xml и нажмите на вкладку объединенного манифеста внизу. Вы получите больше информации о модулях / библиотеках, используемых в нем

5. Разрешения C2DM использовались GCM (устарели в пользу FCM)