Error: 在包‘ com.google.example’main.xml 中没有找到属性‘ adSize’的资源标识符

当我按照说明通过 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文件,但编译器不喜欢它。

229534 次浏览

根据 给你的答案,我认为您需要更改 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"
...
/>

它帮我修好了,如果你还是有错误,你能解释一下吗?

确保你已经在你的布局中包含了这个部分(顶部 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

我也有同样的问题,我从 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 来尝试。我还把我的源代码放在这里: 在 Android 应用程序中添加 Google Admob

正如您在 attrs.xml中指定的那样,adSize 属性属于名称空间 com.google.ads.AdView:

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

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

应该会有用的。

我收到了这个关于大堆属性的错误,我的应用程序没有在 eclipse 下运行,但是在 ant 下它仍然正常构建和运行。

机器人 文件指出:

属性:

xmlns:android

定义 Android 名称空间。此属性应始终设置为“ http://schemas.android.com/apk/res/android”。

我在清单中删除了那一行,在 Eclipse 中保存,粘贴回去,然后再次保存,结果成功了。在我的例子中,我猜测问题是 eclipse,ant 和 adb 不能正确地互相交谈,并且保存重置了一些东西。有趣的是,重新启动 Eclipse 并没有解决这个问题(通常在遇到这种类型的问题时,首先应该尝试重新启动 Eclipse,通常它会解决这个问题)。

对我来说,我不得不说

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

之后:

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

在 res/lay.main.xml 中

我也面临着同样的问题,我使用 GoogleAdMobAdsSDK-4.1.0.jar然后我尝试与 GoogleAdMobAdsSDK-4.0.4.jar现在是工作良好,这是问题的 jar 文件根据我的经验。

在自定义布局名称空间中将 /res/替换为 /lib/

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

对你来说,应该是:

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

我在 MonoDroid 上遇到过类似的问题,当我使用 XML 中具有 "android:"属性的 Drawables 和 Layouts 文件构建类库时。我得到的错误与问题中的错误相似。

中找不到属性“ textCursorDrawable”的资源标识符 “ android”软件包

我发现“ Android:”属性只能在 Android API Level 12 + 中使用,我正在尝试构建一个旧版本。将我的项目升级到基于 Android 4.0的版本为我解决了这个问题。 这就是我找到答案的地方。 Https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxkphm5mwm 如果遇到类似的问题,只需确保您正在根据正确的 API 级别进行构建,并确保缺少的标识符存在于所构建的 API 级别中。

只要改变目标 sdk 右键点击项目,然后点击 属性选择 android 并选择最新的 API

你也可以使用 http://schemas.android.com/apk/res-auto来自动处理它,像这样使用它:

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

同样的错误也发生在我在 res/layingfile 中的“ activity _ baner _ xml.xml”文件中。我所做的就是修复它

<com.google.android.gms.samples.ads.AdView

<com.google.android.gms.ads.AdView

没有提到我的包裹名称。 另外,请确保为 ads:adUnitId="@string/banner_ad_unit_id">设置了 adUnitId 添加单元 Id 位于 res/Value/String 文件夹中。

最终的布局文件如下:

<?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"/>

我也有同样的问题,但是在使用一个图书馆项目的时候,这个问题已经在 r17中解决了: 不使用包的名称空间:

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

必须使用一个虚拟的名称空间:

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

这将解决无法从引用项目访问属性的问题。

如果你的项目是一个分级项目,替换:

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

与:

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

我从 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"

它也起作用,但是有一些区别。第二种解具有完美函数。我正在寻找原因,也许你可以参与其中。谢谢

我正在添加适合我的解决方案,以解决同样的错误。

我右键单击 project > properties > (左面板) Android

右面板下的 Library我删除了错误的库,并添加了一次。

对我来说,这个错误发生在一个损坏的工作区 Eclipse 文件之后,我不得不再次导入所有的项目。

compile 'de.hdodenhof:circleimageview:2.0.0' 将此代码放在 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>

我通常这样将 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"/>

这样你就不需要每次复制视图时都嵌入到父代中。

只要复制粘贴上面的建议,粘贴到任何地方,它应该工作

我一直在寻找答案,但找不到,但最终我可以通过添加 play-service-ads依赖来解决这个问题,让我们试试这个:

文件-> 项目结构...-> 在模块下你可以找到应用程序,有一个选项称为依赖,你可以添加 Gms: play-services-ads: x.x.x依赖到你的项目

当我试图将 Eclipse 项目导入 Android Studio 时遇到了这个问题。

Image

我的问题非常相似(产生相同的问题)。在 Android Studio 中通过“ refactor-> rename”选项重构变量名(从“ value”到“ myValue”)之后,我发现清单文件也发生了变化。元数据“ value”池已更改为“ 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"/>

我希望它能帮到别人!

加入 广告 = “ 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>

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

然后重建项目

我在 Widget. NawigationView中添加了这个参数:

android:layout_gravity="start"

问题解决了。

我遇到了同样的问题,我的解决方法是简单地在我的应用程序模块 build.gradle 中启用数据绑定。

机器人{ ... 启用 = 真 }

Ref-https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-android/

在我的例子中,我在应用程序级别 build.gradle 中缺少一个依赖项。

解决方案是像谷歌概述的那样添加依赖关系:

打开应用程序级别的 build.gradle 文件,查找“依赖项”部分。

dependencies {
implementation ...SOME_IMPLEMENTATION
implementation ...SOME_IMPLEMENTATION
implementation 'com.google.android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}

添加上面的一行,指示 Gradle 引入移动广告 SDK 的最新版本和其他相关依赖项。一旦这样做,保存文件,并执行一个格拉德尔同步。