【问题标题】:android R.java behavior when a library project is added添加库项目时的android R.java行为
【发布时间】:2012-04-13 01:24:56
【问题描述】:

我在我的应用程序中使用 zxing 库进行条码扫描。所以我已将 zxing 项目设置为库并将该库添加到我的项目中(属性 -> android -> 添加库)

在构建代码时添加库项目后,我看到在我的项目中创建了两个 R.java 文件。

一个在路径下:gen\com\google\zxing\client\android

和另一个:gen\myproject

第一个包含库中的所有资源变量以及我项目中的资源变量。第二个只有我的项目中的资源变量。 添加新布局或资源变量时,它会在两个文件中更新

所以我的疑问是: 1.为什么会有两个R.java文件 2.有没有办法可以停止生成包含所有库项目变量的那个

由于这种行为,我遇到了非常难以调试的非常奇怪的问题。

在我的 zxing 库中,当我们尝试扫描条形码时,会设置一个布局“捕获”。每当我添加名称以字母“a”/“b”开头的任何布局或任何资源变量时,我的应用程序都会出现奇怪的行为。当我刚刚重命名布局时,一切都很完美 后来我发现它与R.java文件中“捕获”的id有关。 当我定义一个以字母开头的布局时,它将在“捕获”之前插入到 R.java 列表中,因此捕获的 id 正在改变。 (在我设置为库的实际 zxing 项目中还有另一个 R.java 文件。所以看起来我的 R.java 文件中捕获的 id 和 zxing 库 R.java 应该相同)

你能解释一下这里到底发生了什么

【问题讨论】:

    标签: android r.java-file


    【解决方案1】:

    我认为你包括完整的项目...

    如果是这样删除它,并且只将此文件导入您的项目:

    http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fintegration%2Fandroid%253Fstate%253Dclosed

    这就是你所需要的:)

    【讨论】:

    • 我正在做一个不同的事情,我首先采用 zxing 项目,将其设置为库,然后在我的项目中使用该库。不使用积分器文件。正如这个链接damianflannery.wordpress.com/2011/06/13/…中解释的那样,这不是正确的方法吗?
    • 我不久前做过类似的事情。用户需要安装您的应用程序和附加的 zxing 扫描仪。这是来自 Google Play (Android Market) 的两个应用程序!因此,该代码不会将源代码作为库包含到您的源代码中。它只是打开另一个应用程序并从该应用程序返回值(条形码)。您给我的示例的问题是您希望用户下载第二个程序。我希望你能理解我的故事,如果你有问题就问吧:)
    • 在我的案例中,我为我的应用程序生成了 apk,并且使用该应用程序用户可以进行扫描。无需安装 zxing 或无需下载其他任何东西。它工作完美。我担心的是我试图了解代码行为,R.java 是如何被拾起的。
    • 我看到添加库项目时拥有 2 个 R.java 的通常行为。我测试了其他一些项目并确认了。但我不清楚资源文件将如何被拾取。
    • 我开始了一个新问题stackoverflow.com/questions/9994940/…
    猜你喜欢
    • 2012-04-17
    • 2013-06-03
    • 2015-12-14
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2016-11-29
    • 1970-01-01
    相关资源
    最近更新 更多