代码之家  ›  专栏  ›  技术社区  ›  ilomambo

为导入的JAR生成真正唯一的ID

  •  0
  • ilomambo  · 技术社区  · 12 年前

    在未能将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(在TicTactToeMain中)和GameView(在Tic TactToeLib中)获得了相同的ID号。

    解决方案,有人吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Community Mohan Dere    8 年前

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

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

    话虽如此,但在使用Eclipse时,我花了一些时间让Referenced Library项目被接受。经过几次尝试、全部删除和重新创建库项目后,当我按下Apply时,库引用被“接受”了,一切都很顺利。
    如果你想阅读更多关于我让图书馆被“接受”的痛苦经历的细节,请通读 in this post .