gpt4 book ai didi

android - 在不同的包名下导出 Android 库项目资源?

转载 作者:行者123 更新时间:2023-11-29 02:11:48 26 4
gpt4 key购买 nike

我不确定我是否遇到了 Android 工具中的错误,或者这是设计使然。问题是这样的:我有一个导出小部件的 Android 库项目。作为该小部件的一部分,可设置样式的属性在 R.styleable 中导出:

库项目(package = com.example.mylib):

<declare-styleable name="com.example.MyWidget">
<attr name="someAttr" format="integer" />
</declare-styleable>

应用项目(package = com.example.myapp):

<LinearLayout xmnls:mylib="http://schemas.android.com/apk/res/com.example.mylib">
<com.example.MyWidget android:id="..." mylib:someAttr="1" />
</LinearLayout>

问题是,只要库和应用程序使用相同的包标识符,someAttr 属性似乎只对 Android/ADT 可见!在这种情况下,它们不会,并且 ADT 会失败并出现以下错误:

No resource identifier found for attribute 'someAttr' in package 'com.example.mylib'

就像我说的,我可以通过将应用程序的包名称更改为“com.example.mylib”来解决这个问题,但这当然不是我想要的!我错过了什么吗?

最佳答案

这是一个已知错误 #9656 .我已经写了两篇关于这个问题的文章:herehere .我已经解释了为什么会发生这种情况,以及如果您现在真的非常需要这个问题,如何修补 aapt 来解决这个问题。

目前,如果您不想重建 aapt,则需要将所有自定义属性和使用这些自定义属性的布局从库移动到应用程序。

关于android - 在不同的包名下导出 Android 库项目资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com