ошибка: не найден идентификатор ресурса для атрибута "adSize" в пакете "com.google.example" main.xml - PullRequest
144 голосов
/ 28 апреля 2011

Когда я следовал инструкциям по добавлению рекламы в свое приложение с помощью 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 файл, но компилятор нене нравится.

Ответы [ 24 ]

298 голосов
/ 13 января 2013

Замените /res/ на /lib/ в пользовательском макете.

xmlns:android="http://schemas.android.com/apk/res/android" в вашем случае будет:

xmlns:yourApp="http://schemas.android.com/apk/lib/com.yourAppPackege.yourClass"

Надеюсь, это поможет.

75 голосов
/ 30 апреля 2011

У меня была такая же проблема. Я скопировал код примера из кода 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

42 голосов
/ 14 мая 2012

для меня, я должен добавить

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

сразу после:

xmlns:android="http://schemas.android.com/apk/res/android"

в res / layout / main.xml

27 голосов
/ 04 декабря 2013

Вы также можете использовать http://schemas.android.com/apk/res-auto, который позаботится об этом автоматически. Используйте это так:

xmlns:ads="http://schemas.android.com/apk/res-auto"
8 голосов
/ 16 июля 2015

Я загружаю ту же пользовательскую демонстрацию с Android.com и получаю ту же самую проблему.

на первом, я изменяю

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"

, оно также работает, но есть некоторые различия.Второе решение имеет функцию префекта.Я нахожу причину, может быть, вы можете помочь. спасибо

8 голосов
/ 08 октября 2014

У меня была такая же проблема, но при использовании библиотечного проекта.Эта проблема была решена в r17: вместо использования пространства имен пакета:

xmlns:app="http://schemas.android.com/apk/res/hu.droidium.exercises"

Необходимо использовать фиктивное пространство имен:

xmlns:app="http://schemas.android.com/apk/res-auto"

Это решит проблему небыть доступным из ссылочного проекта.

3 голосов
/ 21 декабря 2011

Я получил эту ошибку в связи с атрибутом largeHeap, мое приложение не запускалось под Eclipse, но в Ant оно все еще создавалось и работало нормально.

Документация для Android гласит:

xmlns: android

Defines the Android namespace. This attribute should always be set to "http://schemas.android.com/apk/res/android".

Я удалил эту строку в моем манифесте, сохранил в затмении, вставил ее обратно и снова сохранил, и это сработало.В моем случае, я думаю, проблема была в том, что eclipse, ant и adb неправильно общались друг с другом, а сохранение сбрасывало что-то.Интересно, что перезапуск Eclipse не решил эту проблему (обычно с такими проблемами перезапуск Eclipse - это первое, что вы должны попробовать, и обычно это решает проблему).

3 голосов
/ 11 ноября 2011

Как вы указали в attrs.xml, ваш атрибут adSize принадлежит пространству имен com.google.ads.AdView.Попробуйте изменить:

android:adUnitId="a14bd6d2c63e055"         android:adSize="BANNER"

на

ads:adUnitId="a14bd6d2c63e055"         ads:adSize="BANNER"

и все должно работать.

2 голосов
/ 30 апреля 2011

Убедитесь, что вы включили эту часть в макет (вверху под строкой xmlns: android)

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

1 голос
/ 29 апреля 2011

Исходя из ответа здесь , я думаю, вам нужно изменить атрибут 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" .../>

Это исправило это для меня.Если вы все еще получаете ошибки, не могли бы вы уточнить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...