Java Windows和Mac上的Android库项目
我代表我的两个Android开发团队问这个问题。我使用Windows,我的合作伙伴使用Macbook。当通过Git共享项目时,Java Windows和Mac上的Android库项目,java,android,eclipse,git,noclassdeffounderror,Java,Android,Eclipse,Git,Noclassdeffounderror,我代表我的两个Android开发团队问这个问题。我使用Windows,我的合作伙伴使用Macbook。当通过Git共享项目时,类路径意外地被弄乱了。以下是一些观察结果: 无法再解析引用的库项目(最初工作) 通过“Java构建路径”中的“项目”选项卡添加时,可以找到库 但是应用程序崩溃了(由于NoClassDefFoundError),再次指向混乱的构建路径结构 Mac上最初引用的库项目通常作为JAR直接显示在构建路径中。现在他们在Android依赖项下这样做,这很奇怪(前者更多) 在Windo
类路径
意外地被弄乱了。以下是一些观察结果:
- 无法再解析引用的库项目(最初工作)
- 通过“Java构建路径”中的“项目”选项卡添加时,可以找到库
- 但是应用程序崩溃了(由于
),再次指向混乱的构建路径结构NoClassDefFoundError
- Mac上最初引用的库项目通常作为JAR直接显示在构建路径中。现在他们在Android依赖项下这样做,这很奇怪(前者更多)
- 在Windows上,上述JAR始终位于依赖项和引用库之下
- 不是版本
.classpath
- 类路径模板的版本
- 根据签出代码的当前平台生成正确的类路径
smudge
脚本,它将在git checkout
上自动调用(因此是“无缝”方面),并将生成实际的.classpath
(否则未进行版本控制并添加到.gitignore
)
(图像显示在“”中,来自“”)
请注意,您可以轻松地从repo中删除.classpath
(无需在本地删除):
git rm --cached -- .classpath
git add -u .
git commit -m "Delete .classpath"
git push
你知道NoClassDefFoundError出现的原因吗?有一些原因,所以你理解java版本是如何出现的,等等。我不确定我是否理解你的意思,@naveentamakar。首先检查bath machine的java版本并检查项目中添加的库
。classpath
是错误地添加到提交中的。另外,我对Git还很陌生,以前从未使用过smudge
脚本。我一定会读更多关于它的文章,为我的项目设计一个。非常感谢!:)@SlashG您可以轻松地删除它(无需删除):git rm--cached--.classpath;吉特加-u;git commit-m“Delete.classpath”
@SlashG污迹脚本可以用任何脚本语言编写。bash脚本可以在Windows和Linux上运行。特别感谢您提供的删除提示!我希望它能正常工作。我在答案中加入了删除过程,以提高可视性。