Ошибка: идентификатор ресурса не найден для атрибута adSize в пакете com.google.example. main.xml
Когда я выполнил инструкции по добавлению объявления в мое приложение с помощью xml, я получил следующие ошибки:
Description Resource Path Location Type
error: No resource identifier found for attribute 'adSize' in package 'com.google.example' main.xml /HelloWorld/res/layout line 12 Android AAPT Problem
Description Resource Path Location Type
error: No resource identifier found for attribute 'adUnitId' in package 'com.google.example' main.xml /HelloWorld/res/layout line 12 Android AAPT Problem
Я редактировал файл main.xml
, добавляет attrs.xml
, но компилятору это не понравилось.
Ответы
Ответ 1
Замените /res/
на /lib/
в вашем пользовательском макете.
xmlns:android="http://schemas.android.com/apk/res/android"
в вашем случае будет:
xmlns:yourApp="http://schemas.android.com/apk/lib/com.yourAppPackege.yourClass"
Надеюсь, это поможет.
Ответ 2
У меня была та же проблема. Я скопировал код примера из кода Google и не смог скомпилировать.
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
Наконец, я понял это. Последняя часть кода "com.google.example
" - это имя своего пакета, поэтому вам нужно заменить его на свой пакет проектов.
Например, мой пакет проектов "com.jms.AdmobExample
", поэтому мое пространство имен ads
:
xmlns:ads="http://schemas.android.com/apk/res/com.jms.AdmobExample"
Проверьте мой пример, он отлично работает. Вы можете загрузить APK, чтобы попробовать. Я также разместил здесь свой исходный код: Добавить Google Admob в приложении для Android
Ответ 3
для меня, я должен добавить
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
сразу после:
xmlns:android="http://schemas.android.com/apk/res/android"
в res/layout/main.xml
Ответ 4
Вы также можете использовать http://schemas.android.com/apk/res-auto, который позаботится об этом автоматически. Используйте его так:
xmlns:ads="http://schemas.android.com/apk/res-auto"
Ответ 5
У меня была такая же проблема, но при использовании проекта библиотеки. Вопрос был решен в r17:
Вместо использования пространства имен пакетов:
xmlns:app="http://schemas.android.com/apk/res/hu.droidium.exercises"
Нужно использовать пустое пространство имен:
xmlns:app="http://schemas.android.com/apk/res-auto"
Это позволит устранить проблему недоступности атрибутов из проекта-ссылки.
Ответ 6
i загрузите одну и ту же пользовательскую демонстрацию из Android.com и получите ту же самую проблему.
в frist, я меняю
xmlns:custom="http://schemas.android.com/apk/res/com.example.android.customviews"
к
xmlns:custom="http://schemas.android.com/apk/lib/com.example.android.customviews"
он работает. то я получаю другое решение
xmlns:custom="http://schemas.android.com/apk/res-auto"
он также работает, но есть некоторые отличия. Второе решение имеет функцию префекта. я нахожу причину, может быть, вы можете иметь руку. thanks
Ответ 7
Как вы указываете в своем attrs.xml
, ваш атрибут adSize принадлежит пространству имен com.google.ads.AdView
. Попробуйте изменить:
android:adUnitId="a14bd6d2c63e055" android:adSize="BANNER"
к
ads:adUnitId="a14bd6d2c63e055" ads:adSize="BANNER"
и он должен работать.
Ответ 8
Я получил эту ошибку в отношении атрибута largeHeap, мое приложение не запускалось под затмением, но в ant оно все еще было создано и запускалось нормально.
Андроид документация гласит, что:
XMLNS: Android
Defines the Android namespace. This attribute should always be set to "http://schemas.android.com/apk/res/android".
Я стирал эту строку в своем манифесте, сохранял в затмении, вставлял строку обратно и снова сохранял, и это сработало. В моем случае я предполагаю, что проблема была в eclipse, ant и adb не говорили друг с другом правильно и сохраняли reset что-то. Интересно, что перезапуск затмения не решило эту проблему (обычно с этими типами проблем перезапуск eclipse - это первое, что вы должны попробовать, и обычно оно решает проблему).
Ответ 9
Убедитесь, что вы включили эту часть в свой макет (вверху ниже xmlns: android line)
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
...........blah blah..
Также проверьте, включили ли вы attrs.xml в res/values /
Подробнее здесь.
http://code.google.com/mobile/ads/docs/android/banner_xml.html
Ответ 10
Основываясь на ответе здесь, я думаю, вам нужно изменить атрибут xmlns: ads. Например, измените это:
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res/com.google.example .../>
:
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res/com.your.app.namespace" .../>
Он исправил это для меня. Если вы все еще получаете ошибки, не могли бы вы уточнить?
Ответ 11
Я обычно встраиваю свойство xmlns: ads в свойства adview следующим образом:
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"/>
так что вам не нужно вставлять родительский элемент каждый раз и каждый раз при копировании объявления.
Просто скопируйте и вставьте объявление вверху и вставьте его в любом месте, и он должен работать
Ответ 12
Я искал ответ, но не смог найти, но, наконец, я мог бы исправить это, добавив play-service-ads
dependency, попробовав это:
*) Файл → Структура проекта... → В модуле вы можете найти приложение, и есть опция, называемая зависимостями, и вы можете добавить com.google.android.gms: play-services-ads: xxx для вашего проекта
Мне пришлось столкнуться с этой проблемой, когда я пытаюсь импортировать проекты Eclipse в Android Studio.
![Изображение]()
Ответ 13
Я также столкнулся с той же проблемой, я использовал GoogleAdMobAdsSDK-4.1.0.jar
, затем я попытался с помощью GoogleAdMobAdsSDK-4.0.4.jar
теперь он работает нормально, это проблема с файлом jar в соответствии с моим опытом.
Ответ 14
У меня была аналогичная проблема с MonoDroid при создании библиотеки классов с файлами Drawables и Layouts с атрибутом "android:"
в xml. Я получаю аналогичную ошибку, как и в вопросе.
Идентификатор ресурса не найден для атрибута 'textCursorDrawable' в пакет 'android'
Я обнаружил, что атрибут "android:" доступен только в Android API Level 12+, и я пытался создать более старую версию. Обновление моего проекта для сборки с Android 4.0 исправило проблему для меня.
Вот где я нашел ответ.
https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM
Просто убедитесь, что вы строите против правильного уровня API, если у вас есть аналогичная проблема, и убедитесь, что отсутствующий идентификатор существует на том уровне API, с которым вы создаете.
Ответ 15
просто измените целевой sdk правой кнопкой мыши на проект, затем нажмите
свойство select android и выберите последний API
Ответ 16
То же самое происходило со мной в файле "activity_banner_xml.xml" внутри папки res/layout. Что я сделал, чтобы исправить это, заменил
<com.google.android.gms.samples.ads.AdView
с
<com.google.android.gms.ads.AdView
Не было ссылок на имя моего пакета.
Кроме того, убедитесь, что вы установили adUnitId для ads:adUnitId="@string/banner_ad_unit_id">
Идентификатор элемента добавления находится в папке res/Values /Strings.
Итак, мой окончательный файл макета выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_id"/>
Ответ 17
Если ваш проект gradle заменяет:
xmlns:android="http://schemas.android.com/apk/res/android"
с:
xmlns:app="http://schemas.android.com/apk/res-auto"
Ответ 18
Я добавляю решение, которое работало для меня для этой же ошибки.
Я щелкнул правой кнопкой мыши проект > свойствa > (левая панель) Android
Правая панель под Library
Я удалил неисправную библиотеку и добавил ее снова.
Для меня эта ошибка произошла после файла поврежденного рабочего пространства eclipse, где мне пришлось снова импортировать все проекты.
Ответ 19
Моя проблема была очень похожа (вызывает такую же проблему). После рефакторинга имени переменной с помощью опции "refactor → rename" в Android Studio (от "value" до "myValue" ) я также обнаружил изменения в файле манифеста. Пул значений "значение" метаданных изменился на "myValue".
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:myValue="@string/facebook_app_id"/>
После возврата файла все швы будут в порядке.
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
Надеюсь, это поможет кому-то!
Ответ 20
Добавить xmlns: ads = "http://schemas.android.com/apk/lib/com.google.ads" ,
Это решит вашу проблему.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.app.activities.Initializer" >
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-123456789/123456789"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Ответ 21
Заменить
xmlns:android="http://schemas.android.com/apk/res/android"
с
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
затем перестроить проект
Ответ 22
Я добавил в android.support.design.widget.Nawigation Просмотрите этот параметр:
android:layout_gravity="start"
И проблема была решена.
Ответ 23
У меня была та же проблема, и мое лекарство - просто включить привязку данных в модуле приложения build.gradle.
android { ... dataBinding.enabled = true }
ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-android/
Ответ 24
В моем случае мне не хватало зависимости на уровне приложения build.gradle.
Решением было добавить зависимость, как показано ниже в Google:
Откройте файл build.gradle уровня приложения для своего приложения и найдите раздел "зависимости".
dependencies {
implementation ...SOME_IMPLEMENTATION
implementation ...SOME_IMPLEMENTATION
implementation 'com.google.android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}
Добавьте строку выше, которая инструктирует Gradle добавить последнюю версию Mobile Ads SDK и дополнительные связанные зависимости. Как только это будет сделано, сохраните файл и выполните синхронизацию Gradle.
Ответ 25
PUT
compile 'de.hdodenhof:circleimageview:2.0.0'
IN Gradle Зависимости и поместите этот код в nav_header_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/lib/org.mainsoft.navigationdrawer"
android:gravity="bottom"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:layout_width="match_parent"
android:layout_height="160dp"
android:background="@drawable/background_material_red"
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/profile_image"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/profile"
app:border_color="#FF000000"
android:layout_marginLeft="24dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginStart="24dp" />
</LinearLayout>