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 и другие строковые значения как таковые, вы должны скопировать свой андроид: имя в значения.
для получения дополнительной информации об этих вариантах посетите этот вопрос или этот вопрос
надеюсь, что это поможет
Ответ 6
Вы можете перейти по ссылке ниже. Надеюсь, это поможет вам.
aapt ОШИБКА Получение атрибута android: name: атрибут не является строковым значением
Спасибо
Ответ 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 мы должны следовать этому подходу для использования строк