error: No resource identifier found for attribute 'adSize' in package 'com.google.example' main.xml
AndroidAdmobAndroid Problem Overview
When I followed the instructions to add an ad into my app by xml, I got the following errors:
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
I did edit the main.xml
, add attrs.xml
file but the compiler didn't like it.
Android Solutions
Solution 1 - Android
Replace /res/
with /lib/
in your custom layout nampespace.
xmlns:android="http://schemas.android.com/apk/res/android"
in your case, would be:
xmlns:yourApp="http://schemas.android.com/apk/lib/com.yourAppPackege.yourClass"
Solution 2 - Android
I had the same problem. I copied the example code from Google code, and could not compile.
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
Finally, I figured it out. The last part of the code "com.google.example
", is their package name, so you need to replace it with your project package.
For example, my project package is "com.jms.AdmobExample
", so my ads
naming space is:
xmlns:ads="http://schemas.android.com/apk/res/com.jms.AdmobExample"
Check my example, it works fine. You can download the APK to try. I also put my source code here: Add Google Admob in Android Application
Solution 3 - Android
for me, I have to add
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
right after:
xmlns:android="http://schemas.android.com/apk/res/android"
in res/layout/main.xml
Solution 4 - Android
You can also use http://schemas.android.com/apk/res-auto that would take care of it automatically. Use it like this:
xmlns:ads="http://schemas.android.com/apk/res-auto"
Solution 5 - Android
I had the same problem, but while using a library project. The issue has been solved in r17: Instead of using the package's namespace:
xmlns:app="http://schemas.android.com/apk/res/hu.droidium.exercises"
One has to use a dummy namespace:
xmlns:app="http://schemas.android.com/apk/res-auto"
This will fix the problem of the attributes not being accessible from the referencing project.
Solution 6 - Android
i download the same custom-demo from Android.com and get the same complie problem.
at frist ,i change
xmlns:custom="http://schemas.android.com/apk/res/com.example.android.customviews"
to
xmlns:custom="http://schemas.android.com/apk/lib/com.example.android.customviews"
it work . then i get another solution
xmlns:custom="http://schemas.android.com/apk/res-auto"
it also work, but there are some differencies. The second solution has prefect function . i am finding the reason , may be you can have a hand in. thanks
Solution 7 - Android
As you specify in your attrs.xml
your adSize attribute belongs to the namespace com.google.ads.AdView
. Try to change:
android:adUnitId="a14bd6d2c63e055" android:adSize="BANNER"
to
ads:adUnitId="a14bd6d2c63e055" ads:adSize="BANNER"
and it should work.
Solution 8 - Android
I received this error with regards to the largeHeap Attribute, my application did not run under eclipse but under ant it still built and ran normally.
The android documentation states that:
>attributes:
>
>xmlns:android
>
> Defines the Android namespace. This attribute should always be set to "http://schemas.android.com/apk/res/android
".
I erased that line in my manifest, saved in eclipse, pasted the line back in and saved again, and it worked. In my case I guess the problem was eclipse, ant and adb not talking to each other correctly and the saving reset something. Interestingly restarting eclipse did not solve this problem (usually with these types of problems restarting eclipse is the first thing you should try, and usually it solves the problem).
Solution 9 - Android
Make Sure you have included this part in your layout (top below xmlns:android line)
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
...........blah blah..
Also Check whether you have included attrs.xml in the res/values/
Check here for more details. http://code.google.com/mobile/ads/docs/android/banner_xml.html
Solution 10 - Android
Based on the answer here, I think you need to change the xmlns:ads attribute. For example, change this:
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
...
/>
to this:
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res/com.your.app.namespace"
...
/>
It fixed it for me. If you're still getting errors, could you elaborate?
Solution 11 - Android
I usually embed the xmlns:ads property into the adview properties this way:
<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"/>
so that you dont need to embed into the parent every and each time you copy the adview.
Just copy and paste the adview above and paste it anywhere and it should work
Solution 12 - Android
I've been searching answer but couldn't find but finally I could fix this by adding play-service-ads
dependency let's try this:
*) File -> Project Structure... -> Under the module you can find app and there is a option called dependencies and you can add com.google.android.gms:play-services-ads:x.x.x dependency to your project
I faced this problem when I try to import Eclipse projects into Android Studio.
Solution 13 - Android
In my case, I was missing a dependency in the app level build.gradle.
The solution was to add the dependency as google outlines below:
Open the app-level build.gradle file for your app, and look for a "dependencies" section.
dependencies {
implementation ...SOME_IMPLEMENTATION
implementation ...SOME_IMPLEMENTATION
implementation 'com.google.android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}
Add the line above, which instruct Gradle to pull in the latest version of the Mobile Ads SDK and additional related dependencies. Once that's done, save the file and perform a Gradle sync.
Solution 14 - Android
I also faced the same problem, I was using GoogleAdMobAdsSDK-4.1.0.jar
then I tried with GoogleAdMobAdsSDK-4.0.4.jar
now it is working fine, It is problem with jar file as per my experience.
Solution 15 - Android
I had a similar issue on MonoDroid when building a class library with Drawables and Layouts files that have "android:"
attribute in the xml. I get a similar error as the one in the question.
> No resource identifier found for attribute 'textCursorDrawable' in > package 'android'
I found from that "android: " attribute is only available in Android API Level 12+ and I was trying to build for an older version. Updating my project to build against Android 4.0 fixed the issue for me. Here is where I found the answer. https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM Just make sure that you are building against the right API level if you get a similar issue, and ensure that the missing identifier exists in that API level that you are build against.
Solution 16 - Android
just change the target sdk right click on project then click on property select android and select the latest API
Solution 17 - Android
The same error was happening to me in the "activity_banner_xml.xml" file inside res/layout folder. What I did to fix it was replace
<com.google.android.gms.samples.ads.AdView
with
<com.google.android.gms.ads.AdView
There was no references to my package name.
Also, be sure you set the adUnitId for ads:adUnitId="@string/banner_ad_unit_id">
The add unit Id is located in your res/Values/Strings folder.
So my final layout file looks like this:
<?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"/>
Solution 18 - Android
If yours is a gradle project replace:
xmlns:android="http://schemas.android.com/apk/res/android"
with:
xmlns:app="http://schemas.android.com/apk/res-auto"
Solution 19 - Android
I am adding the solution that worked for me for this same error.
I right clicked project > properties > (left panel) Android
Right panel under Library
I removed the faulty library and added it again.
For me this error occurred after a corrupt workspace eclipse file where I had to import all projects again.
Solution 20 - Android
My problem was very similar (produces same problem). After refactoring variable name by "refactor -> rename" option in Android Studio (from "value" to "myValue") i found changes in manifest file, too. Meta-data "value" pool has changed to "myValue".
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:myValue="@string/facebook_app_id"/>
After revert file everything seams to be ok again.
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
I hope, it will help someone!
Solution 21 - Android
Add xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads";, This will solve your Issue.
<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>
Solution 22 - Android
Replace
xmlns:android="http://schemas.android.com/apk/res/android"
with
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
then Rebuild Project
Solution 23 - Android
I added in android.support.design.widget.NawigationView this parameter:
android:layout_gravity="start"
And problem was solved.
Solution 24 - Android
I had the same problem and my cure is to simply enable data binding in my app module's build.gradle. >android { > ... > dataBinding.enabled = true >}
ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-android/
Solution 25 - Android
PUT
compile 'de.hdodenhof:circleimageview:2.0.0'
IN Gradle Dependencies and put this code in 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>