当我按照说明通过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
文件,但编译器不喜欢它。
答案 0 :(得分:298)
将/res/
替换为自定义布局nampespace中的/lib/
。
xmlns:android="http://schemas.android.com/apk/res/android"
将是:
xmlns:yourApp="http://schemas.android.com/apk/lib/com.yourAppPackege.yourClass"
我希望它有所帮助。
答案 1 :(得分:75)
我遇到了同样的问题。我从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试试。我还在这里输入了我的源代码:Add Google Admob in Android Application
答案 2 :(得分:42)
对我来说,我必须添加
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
之后:
xmlns:android="http://schemas.android.com/apk/res/android"
res / layout / main.xml中的
答案 3 :(得分:27)
您还可以使用http://schemas.android.com/apk/res-auto自动处理它。像这样使用它:
xmlns:ads="http://schemas.android.com/apk/res-auto"
答案 4 :(得分:8)
我从Android.com下载相同的自定义演示并获得相同的complie问题。
在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"
它也有效,但有一些不同之处。第二种解决方案具有完美功能。我找到了原因,也许你可以帮忙。谢谢
答案 5 :(得分:8)
我遇到了同样的问题,但在使用库项目时。该问题已在r17中解决: 而不是使用包的命名空间:
xmlns:app="http://schemas.android.com/apk/res/hu.droidium.exercises"
必须使用虚拟命名空间:
xmlns:app="http://schemas.android.com/apk/res-auto"
这将解决无法从引用项目访问属性的问题。
答案 6 :(得分:3)
正如您在attrs.xml
中指定的那样,您的adSize属性属于名称空间com.google.ads.AdView
。尝试改变:
android:adUnitId="a14bd6d2c63e055" android:adSize="BANNER"
到
ads:adUnitId="a14bd6d2c63e055" ads:adSize="BANNER"
它应该有用。
答案 7 :(得分:3)
关于largeHeap属性,我收到了这个错误,我的应用程序没有在eclipse下运行,但是在ant下它仍然构建并正常运行。
android documentation声明:
的xmlns:机器人
Defines the Android namespace. This attribute should always be set to "http://schemas.android.com/apk/res/android".
我删除了我的清单中的那条线,保存在日食中,将线粘贴回来并再次保存,并且它有效。在我的情况下,我猜问题是eclipse,ant和adb没有正确地相互交谈,并且保存重置了一些东西。有趣的是重启eclipse并没有解决这个问题(通常有这些类型的问题,重启eclipse是你应该尝试的第一件事,通常它会解决问题)。
答案 8 :(得分:2)
确保你已将此部分包含在你的布局中(顶部xmlns:android行下方)
xmlns:ads="http://schemas.android.com/apk/res/com.google.example"
...........blah blah..
另请检查是否在res / values /
中包含了attrs.xml点击此处了解更多详情。 http://code.google.com/mobile/ads/docs/android/banner_xml.html
答案 9 :(得分:1)
根据答案here,我认为您需要更改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" .../>
它为我修好了。如果您仍然遇到错误,可以详细说明吗?
答案 10 :(得分:1)
我通常以这种方式将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"/>
因此,每次复制adview时都不需要嵌入父级。
只需复制并粘贴上面的广告视图并将其粘贴到任何位置即可正常工作
答案 11 :(得分:1)
我一直在寻找答案,但找不到但最后我可以通过添加play-service-ads
依赖来解决这个问题,让我们试试这个:
*)文件 - &gt;项目结构...... - &gt;在该模块下,您可以找到应用程序,并且有一个名为依赖项的选项,您可以将 com.google.android.gms:play-services-ads:x.x.x 依赖项添加到您的项目中
当我尝试将Eclipse项目导入Android Studio时,我遇到了这个问题。
答案 12 :(得分:0)
只需更改目标sdk,右键单击项目,然后单击 属性选择android并选择最新的API
答案 13 :(得分:0)
在使用xml中具有"android:"
属性的Drawables和Layouts文件构建类库时,我在MonoDroid上遇到了类似的问题。我得到了与问题中的错误类似的错误。
找不到属性'textCursorDrawable'的资源标识符 包'android'
我发现“android:”属性仅适用于Android API Level 12+,我试图为旧版本构建。更新我的项目以针对Android 4.0进行构建为我解决了这个问题。 这是我找到答案的地方。 https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM 如果遇到类似问题,请确保您正在构建正确的API级别,并确保在您构建的API级别中存在缺少的标识符。
答案 14 :(得分:0)
在&#34; activity_banner_xml.xml&#34;中发生了同样的错误。 res / layout文件夹中的文件。我做了什么来解决它是替换
<com.google.android.gms.samples.ads.AdView
带
<com.google.android.gms.ads.AdView
没有对我的包名称的引用。
另外,请确保为ads:adUnitId="@string/banner_ad_unit_id">
设置adUnitId
添加单元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"/>
答案 15 :(得分:0)
我也遇到了同样的问题,我正在使用GoogleAdMobAdsSDK-4.1.0.jar
然后我尝试使用GoogleAdMobAdsSDK-4.0.4.jar
现在它正常工作,根据我的经验,这是jar文件的问题。
答案 16 :(得分:0)
如果你的是gradle项目替换:
xmlns:android="http://schemas.android.com/apk/res/android"
使用:
xmlns:app="http://schemas.android.com/apk/res-auto"
答案 17 :(得分:0)
我正在添加适用于此同样错误的解决方案。
我右键单击项目&gt;属性&gt; (左图)Android
Library
下的右侧面板我删除了有问题的库并再次添加。
对我来说,这个错误发生在一个损坏的工作区eclipse文件之后,我不得不再次导入所有项目。
答案 18 :(得分:0)
我的问题非常相似(产生同样的问题)。在Android Studio中通过“refactor - &gt; rename”选项重构变量名称后(从“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"/>
我希望,它会帮助别人!
答案 19 :(得分:0)
添加 xmlns:ads =&#34; 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>
答案 20 :(得分:0)
替换
xmlns:android="http://schemas.android.com/apk/res/android"
同
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
然后重建项目
答案 21 :(得分:0)
我在 android.support.design.widget.NawigationView 中添加了这个参数:
android:layout_gravity="start"
问题解决了。
答案 22 :(得分:0)
我遇到了同样的问题,我的办法就是在我的app模块的build.gradle中启用数据绑定。
android { ... dataBinding.enabled = true }
参考 - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-android/
答案 23 :(得分:0)
就我而言,我在应用程序级别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同步。
答案 24 :(得分:-2)
PUT
compile 'de.hdodenhof:circleimageview:2.0.0'
IN Gradle Dependencies并将此代码放在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>