@ android:id有合法用途吗?

@ android:id有合法用途吗?,第1张

概述在我将我的android工具升级到最新版本以便在API21上工作后,尝试编译我的项目导致以下错误:update_languages_button_preference_layout.xml:2:note:didyoumeantouse@+idinsteadof@+android:id?update_languages_button_preference_layout.xml:2:error:creatingres

在我将我的android工具升级到最新版本以便在API21上工作后,尝试编译我的项目导致以下错误:

update_languages_button_preference_layout.xml:2: note: dID you mean to use @+ID instead of @+androID:ID?update_languages_button_preference_layout.xml:2: error: creating resource for external package androID: ID/layout.update_languages_button_preference_layout.xml:2: error: Error: No resource found that matches the given name (at ‘ID’ with value ‘@+androID:ID/layout’).

问题似乎是androID:ID =“@ androID:ID / layout”:用@ ID替换@ androID:ID就足以能够正常编译和运行项目了.

然而,通过整个代码库的快速搜索揭示了项目中的一些其他位置,其中使用构造androID:ID =“@ androID:ID / ….这些显然没有阻止项目通过所有测试,甚至如果我不能保证它们仍在使用中.

>有没有合法使用androID:ID =“@ androID:ID可以证明将这些引用留在我们的xml文件中,而不是用@ ID替换它们?
>为什么他们没有提出与第一个文件相同的错误?

解决方法:

不,你应该永远不要在你的应用程序中使用@ androID:ID. androID命名空间是为框架保留的.对于应用程序来说,这从来都不是安全的,现在会生成编译错误.

对于一些背景知识,在androID命名空间内生成新的ID会将它们放在现有的androID命名空间ID之后的未使用空间中.这将在框架中添加新ID之前正常工作,此时您的内部ID将与实际框架ID重叠并导致奇怪的问题.

至于其他情况,那些也应该产生错误. AAPT中可能存在错误.无论如何,您应该从您的资源中删除所有@ androID实例.

总结

以上是内存溢出为你收集整理的@ android:id有合法用途吗?全部内容,希望文章能够帮你解决@ android:id有合法用途吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1110705.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存