【问题标题】:Generating really unique IDs for imported JAR为导入的 JAR 生成真正唯一的 ID
【发布时间】:2013-04-10 06:22:27
【问题描述】:

在未能将 Android 项目用作库 (see this if you want details) 后,我导出了项目的 JAR 文件并(创建并)添加到“libs”文件夹中。我还将 JAR 文件添加到项目的构建路径中。

但是我得到了这个运行时错误:

04-09 00:40:40.209: E/AndroidRuntime(20499): FATAL EXCEPTION: main
04-09 00:40:40.209: E/AndroidRuntime(20499): java.lang.RuntimeException: Unable to
start activity ComponentInfo{com.example.android.tictactoe/com.example.android.tictactoe.library.GameActivity}:
java.lang.ClassCastException: android.widget.Button cannot be cast
to com.example.android.tictactoe.library.GameView

快速检查后发现,我带到 libs 的 JAR 库已定义与主项目中的资源 ID 相同的资源 ID。因此,Button(在 TicTacToeMain 中)和 GameView(在 TicTactToeLib 中)获得了相同的 ID 号。

解决方案,有人吗?

【问题讨论】:

  • 这个问题已经存在一段时间了,目前看来没有好的解决方案,看herehere讨论。

标签: android resources libraries buildpath


【解决方案1】:

我找到的唯一解决方案是让该库作为 Android 项目库(在项目属性中标记为 is library

将库项目添加到目标项目(再次通过项目的属性)并应用它后,库的 R 类将重新编号并添加到目标项目。

话虽如此,在使用 Eclipse 时,我花了一些时间让 Referenced Library 项目被接受。经过几次(多次)尝试以及完全删除和重新创建库项目后,当我按下应用时,库引用被“接受”并且一切正常。
如果你想阅读更多关于我让图书馆被“接受”的磨难的详细信息,请阅读所有内容in this post

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    相关资源
    最近更新 更多