使用library工程中自定义属性无法识别问题
解决:xmlns:ptr="http://schemas.android.com/apk/res/包名,
改成xmlns:ptr="http://schemas.android.com/apk/res-auto
参照google官方文档试出来的
 
看到这位兄弟解释,借用下给大家参考。
 
http://blog.sina.com.cn/s/blog_ac843e3301017p2t.html
 
 
1.================================================================

在前面我们使用了一个android项目作为一个library,供另外一个项目使用,但是也会出现一些问题,如下:

当project主动引用另外一个android project的时候,出现了一个问题,在当前的project中报了library中的一些错误 :
E:\developtools\workspace\Chejt\res\layout\setting_contents_fragment.xml:62: error: No resource identifier found for attribute 'mode' in package 'com.souchenow.cjt<这是作为library的项目>'
在我们的library项目中确实用到了attribute,即xml自定义属性,在attr.xml中定义了一些属性,但是它不作为一个library的时候就不会报错,而作为一个library的时候却报了错,这是什么原因呢?我通过以下方式解决了问题,在xml中引入这个属性的时候,我们不使用以前的
        xmlns:ptr="http://schemas.android.com/apk/com.shouchenow.main"
这样的形式,而换成了
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
换成了res-auto ,这样问题解决,详细看下链接:
http://stackoverflow.com/questions/10398416/using-activities-from-library-projects
简述:

Issue 9656: Library projects don't support custom XML attributes for custom classes

Solution:

Upgrade to latest SDK & ADT version (fixed was released since r17) and usehttp://schemas.android.com/apk/res-auto as custom attributes' namespace URI, see Revisions for ADT 17.0.0:

Added support for custom views with custom attributes in libraries. Layouts using custom attributes must use the namespace URI http://schemas.android.com/apk/res-auto instead of the URI that includes the app package name. This URI is replaced with the app specific one at build time.

Related Topic:

Help with a custom View attributes inside a Android Library Project

2=======================================================================
我们来看资源打包问题:
自:http://developer.android.com/tools/projects/index.html#TestProjects
When you build an application that depends on a library project, the SDK tools compile the library into a temporary JAR file and uses it in the main project, then uses the result to generate the .apk. In cases where a resource ID is defined in both the application and the library, the tools ensure that the resource declared in the application gets priority and that the resource in the library project is not compiled into the application .apk. This gives your application the flexibility to either use or redefine any resource behaviors or values that are defined in any library.
当我们把一个android project 加上 is library属性的时候,再进行清理之后R文件会出现以下的情况:
拿R.id来举一个例子,在加上属性以前为:
public static final class id {
        public static final int action_settings=0x7f080000;
    }
但是加上属性之后会变成下面的形式:
public static final class id {
        public static int action_settings=0x7f080000;
    }
当加上is library属性之后,在R文件中的final属性就会消失,而不是libary的时候,是会有final属性的,如果变成了libary,我们在使用到R.id.button等的时候,我们就不能把它放在switch中,我们只能把它放在if()else()中,因为switch要求为常量,而if...else...没有这样的要求。
 
我们来看下当一个项目作为一个library引入之后如果资源冲突出现的情况来分析一下:
每个项目中都会有ic_lancher图片,我们就用它来进行一个小小的连接前后的对比:
在链接前:library表示作为库引入的项目,project表示我们将要引入包的那个项目。
library:public static final int ic_launcher=0x7f020000;
project:public static final int ic_launcher=0x7f020000;
链接后:
我们清理项目:
library:public static int ic_launcher=0x7f020000;//final 消失,但是id号没变
project:
library.get.R:public static final int ic_launcher= 0x7f020000;
project.get.R:public static final int ic_launcher=0x7f020000;

Library工程No resource identifier found for attribute的更多相关文章

  1. 解决 Delphi XE5 写Android程序的No resource identifier found for attribute... 错误【转】

    原文:http://www.hxhlb.cn/article/32142aaeb67bbc05379369c3.html 那一天,我装上了RAD Studio XE5. 当天晚上,我就写了一个小小的A ...

  2. No resource identifier found for attribute 'showAsAction' in package 'android'

    运行一个项目时在一个menu.xml文件item属性android:showAsAction 报错 No resource identifier found for attribute 'showAs ...

  3. Android 官网提供的Custom-view 编译出错--error: No resource identifier found for attribute

    error: No resource identifier found for attribute in custom-views from http://developer.android.com ...

  4. res\menu\main.xml:6: error: No resource identifier found for attribute 'showAsAction' in package 'com.xxx.xxxx'

    res\menu\main.xml:6: error: No resource identifier found for attribute 'showAsAction' in package 'co ...

  5. Error:(108) No resource identifier found for attribute 'style' in package 'android'

    Error:(108) No resource identifier found for attribute 'style' in package 'android' 解决方案: 这是错误的写法: a ...

  6. Android调试错误-No resource identifier found for attribute 'showAsAction'

    转载自:http://www.bubuko.com/infodetail-498830.html 1.问题描述: 24\YoumiAndroidSdk\demo\offers\res\menu\mai ...

  7. apktool 回编译报错:No resource identifier found for attribute 'xxxxxx' in package 'android' W:

    C:\xxxx\app-release\res\layout-v26\xxxx.xml:5: error: No resource identifier found for attribute 'xx ...

  8. 自定义view中错误:No resource identifier found for attribute X in package X

  9. Error:(12) No resource identifier found for attribute 'titles' in package 'com.itheima52.mobilesafe5

    http://stackoverflow.com/questions/5819369/error-no-resource-identifier-found-for-attribute-adsize-i ...

随机推荐

  1. (转)c#多线程 Invoke方法的使用

    原文地址:http://www.cnblogs.com/lovko/archive/2008/12/19/1358748.html 在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直 ...

  2. php中检查文件或目录是否存在的代码小结

    检查文件或目录是否存在 ,我们使用了php中常用的函数file_exists,这个函数就可以实现我想要的功能,下面大家慢慢参考一下下面是一个简单的检查文件是否存在的实例代码: <?php $fi ...

  3. ResultSet的Type

    st = conn.prepareStatement(sql.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ ...

  4. android menu 开发

    menu 分类: 选项菜单(OptionsMenu) 上下文菜单(ContextMenu) 子菜单(SubMenu) 弹出菜单(Popup)   首先说 选项菜单(OptionsMenu) 一.方法介 ...

  5. Flex4 DataGrid实现可复制单元格,同时解决自定义GridItemRenderer出现1009错误的方法

    原创内容,如需转载,请注明出处,谢谢 最近在项目中发现Flex的DataGrid不支持内容复制,在涉及到保护敏感数据时倒是很有用处,但大部分情况下,我们还是希望客户能够直接复制DataGrid单元格中 ...

  6. 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)

    云计算架构图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什 ...

  7. spark1.4的本地模式编程练习(1)

    spark编程练习 申明:以下代码仅作学习参考使用,勿使用在商业用途. Wordcount UserMining TweetMining HashtagMining InvertedIndex Tes ...

  8. 非常不错的IT进阶站点

    1:CSDN http://www.csdn.net/ 2:Iteye http://www.iteye.com 3:拼吾爱 http://pin5i.com 4:月光博客 http://www.wi ...

  9. WPF学习系列之六 (元素绑定)

    元素绑定 简单地说,数据绑定是一种关系,该关系告诉WPF从一个源对象提取一些信息,并使用这些信息设置目标对象的属性.目标属性总是依赖属性,并且通常位于WPF元素中. 一.将元素绑定到一起 <Wi ...

  10. Tomcat安装后启动一闪而过

    出现这种问题一般是环境变量没配置好.除了JDK环境变量还有Tomcat环境变量:CATALINA_HOME 和CATALINA_BASE 虽然JDK里面会含有JRE,但是最好是在环境变量里面也配置一个 ...