【问题标题】:Issue with Android libraries and projectAndroid 库和项目的问题
【发布时间】:2012-03-22 03:10:40
【问题描述】:

我正在尝试使用两个库创建一个 android 项目,但是,我已经能够将我创建的两个库与我的 android 项目链接起来。 我在两个库中有相同的 xml 名称,当我编译我的项目时,R.java 文件正在我的新项目中编译,我只从两个库中获取一个 xml 文件。如何将我的 android 项目中的两个库链接到相同的 xml 名称?我知道可以使用不同的名称来完成,但我想要相同的名称。

【问题讨论】:

    标签: android android-layout android-intent


    【解决方案1】:

    您是说您在两个库项目的/res/values 中都使用了strings.xml,并希望在您的消费项目中获得多个strings.xml?

    根据我的经验,如果我在库项目和消费项目中都有 strings.xml,则生成的 R.java 将所有 3 个中的值合并在一起,任何重复条目的值都在消费项目。

    【讨论】:

    • 不,我想将我的值从 res/layout/main.xml 的两个库中获取到我的主项目中而不被重叠。 res/layout/main.xml 中所有值的名称都是一样的。
    • 当我编译代码时,我得到的 r.java 生成的所有值都是重叠的。取决于上面在列表中声明的库,仅采用该值中的元素
    【解决方案2】:

    不可能。这就是图书馆项目的设计方式。资源被合并到父项目中。如果您希望两个库中的值都包含在其中,则它们需要具有不同的资源 ID,即使这样,您也将拥有一个资源文件(除非您以不同的文件名开头)。

    你可以让它“工作”的唯一方法是在你的构建过程中重命名文件,这是可行的,但不是微不足道的,尤其是在可能存在资源 ID 冲突的情况下,如果你的主项目需要更难直接使用任何这些资源。

    【讨论】:

    • 所以你说在两个库中具有相同的 xml 名称并将它们合并在一起是不可能的?它适用于 diff xml 名称但我需要为我的项目具有相同的 xml 名称。有什么办法可以做到吗?
    • 我是说它会将它们合并到你的主项目中的一个资源文件中。
    • 这就是它的作用。合并为一个很好,但我希望在我的最终构建中两个具有相同名称的 xml。有没有办法做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多