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

时间:2013-04-10 06:22:27

标签: android resources libraries buildpath

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

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

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号。

解决方案,任何人?

1 个答案:

答案 0 :(得分:0)

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

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

这就是说,使用Eclipse时,我花了一些时间来使Referenced Library项目被接受。经过几次(很多次)尝试以及完全删除和重新创建库项目后,当我按下Apply时,库引用被“接受”,并且它完全正常工作。
如果您想要阅读有关我的考验的更多详细信息,请将该库“接受”,请全部阅读in this post