ERROR получает атрибут 'name': атрибут не является строковым значением

Загрузка моего файла apk в google play делает эту ошибку:

Ваш APK не может быть проанализирован с помощью aapt. Выход ошибки: не удалось выполнить aap dump badging: ERROR получает атрибут 'name': атрибут не является строковое значение

Поскольку я знаю, что эта проблема находится в моем файле манифеста, я поставил ее здесь:

AndroidManifext.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.altontech.newsimpay">

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <permission
        android:name="ir.altontech.newsimpay.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="ir.altontech.newsimpay.permission.C2D_MESSAGE" />

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <application xmlns:tools="http://schemas.android.com/tools"
        android:name="ir.altontech.newsimpay.Classes.Model.AnalyticsApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="false"
        android:theme="@style/AppTheme"
        tools:replace="android:supportsRtl">

        <receiver
            android:name="com.adjust.sdk.AdjustReferrerReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <receiver android:name=".Receivers.SmsListener">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

        <receiver
            android:name="com.google.android.gms.analytics.AnalyticsReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.google.android.gms.analytics.AnalyticsService"
            android:enabled="true"
            android:exported="false" />

        <activity
            android:name="ir.altontech.newsimpay.Activities.Introduction"
            android:screenOrientation="portrait" />
        <activity
            android:name="ir.altontech.newsimpay.Activities.Main"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:taskAffinity="ir.altontech.simpay"
            android:theme="@style/AppTheme"
            android:windowSoftInputMode="adjustPan"/>

        <activity
            android:name=".Activities.SpecificPage"
            android:screenOrientation="portrait">
            <intent-filter>
                <data
                    android:host="ir.altontech.simpay.specific"
                    android:scheme="simpay" />
                <data
                    android:host="ad.simpay.ir"
                    android:scheme="http" />

                <action android:name="android.intent.action.VIEW" />

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

        <activity
            android:name=".Activities.SplashActivity"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:taskAffinity="ir.altontech.simpay"
            android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity
            android:name=".Activities.FastCharge"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"
            android:taskAffinity="ir.altontech.simpay"
            android:theme="@style/fast_charge_theme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

        <activity android:name="ir.altontech.newsimpay.Activities.BarcodeScanner" />
        <activity
            android:name="ir.altontech.newsimpay.Activities.FinalTrainTicket"
            android:screenOrientation="landscape" />
        <activity
            android:name="ir.altontech.newsimpay.Activities.VideoPlayer"
            android:screenOrientation="landscape"
            android:taskAffinity="ir.altontech.simpay" />
        <activity android:name="ir.altontech.newsimpay.Activities.CallBack">
            <intent-filter>
                <data
                    android:host="ir.altontech.simpay.callback"
                    android:scheme="simpay" />

                <action android:name="android.intent.action.VIEW" />

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

        <service
            android:name=".Classes.Services.GCMService"
            android:exported="false" />

        <receiver
            android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.google.android.gms.analytics.CampaignTrackingService"
            android:enabled="true"
            android:exported="false" />

        <!-- services -->

        <!-- registration process service -->
        <service
            android:name="ir.altontech.cloudmessaging.core.registrationprocess.RegistrationProcessService"
            android:exported="false">
            <intent-filter>
                <action android:name="co.shariftech.pushnotification.intent.action.START_PUSH_NOTIFICATION_SERVICE" />
            </intent-filter>
        </service>

        <!-- registration process token refresher service -->
        <service
            android:name="ir.altontech.cloudmessaging.core.registrationprocess.RegistrationProcessTokenRefresherService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.gms.iid.InstanceID" />
            </intent-filter>
        </service>

        <!-- push notification service -->
        <service
            android:name="ir.altontech.cloudmessaging.core.pushnotification.PushNotificationService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            </intent-filter>
        </service>

        <!-- receivers -->

        <!-- google cloud messaging receiver -->
        <receiver
            android:name="com.google.android.gms.gcm.GcmReceiver"
            android:exported="true"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <category android:name="ir.altontech.newsimpay" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

Я проверил все атрибуты android:name и не смог найти проблему. Спасибо всем.

Ответы

Ответ 1

проверить эту ссылку из google

      android:name="string"

В документе говорится, что ваш синтаксис элемента android:name должен быть Строка.

Я думаю, ваш файл манифеста хорош. проверьте свою библиотеку манифеста. Можете ли вы добавить библиотеку и получить эту ошибку. также проверьте свой проект, и ваша библиотека имеет элемент android:name.

надеюсь, что это поможет вам.

Ответ 2

Вся вещь кажется хорошей в вашей AndroidManifest.xml кроме xmlns:tools="http://schemas.android.com/tools" позиции. Попробуйте переместить xmlns:tools="http://schemas.android.com/tools" из тега <application></application> в тег <manifest></manifest>, как это.

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

<application
    android:name="ir.altontech.newsimpay.Classes.Model.AnalyticsApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="false"
    android:theme="@style/AppTheme"
    tools:replace="android:supportsRtl">
</application>

Надеюсь, это сработает для вас:)

Ответ 3

Вот как вы определили свое пользовательское разрешение:

<permission
    android:name="ir.altontech.newsimpay.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

Но в docs вы можете видеть:

Вам нужно предоставить ярлык и описание для разрешения.

Я не уверен, может ли это быть так, но, по крайней мере, настоятельно рекомендуется указать ярлык и описание.

Ответ 4

Если вы используете какой-либо проект библиотеки в качестве модуля в своем проекте, имея

 android:label="@string/app_name"

в файле string.xml, то это может привести к вашей проблеме.

Итак, ваше имя приложения для протокола жесткого кода в файле манифеста для имени приложения, как показано ниже.

 android:label="PASS YoUR APP NAME HERE not from string.xml"

Ответ 5

поэтому после поиска немного я нашел три варианта для вас:

1, если у вас есть что-то следующее (чего я вижу не вижу):

<intent-filter>
    <action android:name="@string/alarm_auto_sync" >
</intent-filter>

вам следует жестко закодировать строку и удалить @string

2- следуйте эту ошибку, чтобы узнать, что можно было сделать и что было сделано для решения этой проблемы, поскольку я узнал, что это может быть ошибкой

aap dump bging

3, если у вас есть значения-fa и values-en и другие строковые значения как таковые, вы должны скопировать свой андроид: имя в значения.

для получения дополнительной информации об этих вариантах посетите этот вопрос или этот вопрос

надеюсь, что это поможет

Ответ 7

Если ваше приложение многоязычное, убедитесь, что вы предоставили перевод в качестве false в файле string.xml или укажите имя приложения в других файлах. Я тоже получил эту ошибку один раз, и это было причиной.

Ответ 8

может быть включен в ваш класс, был перенесен в другую проверку пакета, если все ваши классы находятся в том же пути пакета, что и манифест

        android:name="ir.altontech.cloudmessaging.core.pushnotification.PushNotificationService"

Ответ 9

Прежде всего, попробуйте следовать соглашение об именах java

Поскольку из вашего кода я не могу сказать, что ваш Application Class класс Enclosing

Попробуйте использовать .Classes.Model.AnalyticsApplication вместо ir.altontech.newsimpay.Classes.Model.AnalyticsApplication

Ответ 10

В Android нам нужно назначить строки через файл string.xml.

 String name - "xyz app"  

это не рекомендуемый подход

   String name = "@string/app_name"

В String.xml Сохраните это имя как

 <string name="app_name">xyz app</string>

в программировании для Android мы должны следовать этому подходу для использования строк