Android Library Projects on Windows and Mac

江枫思渺然 提交于 2019-12-08 08:51:02

问题


I'm asking this question on behalf of my team of two Android devs. I use Windows and my partner uses a Macbook. When sharing a project through Git, the classpaths accidentally got messed up. Here are a few observations:

  • The library projects referenced (working initially) can't be resolved anymore.
  • When adding through the Projects tab in 'Java Build Path', the libraries can be found.
  • But the app crashes (due to NoClassDefFoundError), again pointing towards a messy build path structure.
  • Initially referenced library projects on the Mac used to appear directly in the build path as JARs. Now they do under Android Dependencies, which is weird (the former more).
  • On the Windows, the above JARs have always been under Dependencies and Referenced Libraries.

I'd like to resolve this issue in a way that we can share the project on Git and work seamlessly in the future. :)


回答1:


One option is to:

  • not version .classpath,
  • version a classpath template
  • generate the right classpath depending on the current platform where the code is checked out.

That is called a content filter driver, here a smudge script, which will be called automatically (hence the "seamless" aspect) on git checkout, and will generate the actual .classpath (otherwise not versioned and add in the .gitignore)

(image shown in "Customizing Git - Git Attributes", from "Pro Git book")

Note that you can easily remove (without deleting it locally) the .classpath from the repo:

git rm --cached -- .classpath
git add -u .
git commit -m "Delete .classpath"
git push


来源:https://stackoverflow.com/questions/30612336/android-library-projects-on-windows-and-mac

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!