今天悲剧了一大下,无语了彻底,现在的心情还久久不能平静,原因就是在不必要的地方瞎耽误了些许功夫。
说一下背景吧,就是之前在本地把项目的一些功能什么的都完成了,准备往SVN的项目里整合一下,结果老大在服务器上创建项目的时候,Android SDK的版本是最新的,我们小的本地里的版本还没有及时更新上去,本来自己下载一下就好了嘛,但是在这个抢网速已经到了无节操的时代,我对于更新Android SDK表示很有压力。
不过老大开了一个共享文件夹,可以直接将他的Android SDK拷到自己的本地,这到也没什么了。因为之前最开始的时候也是从他那拖的整套SDK。
然后各种问题也就接踵而来了,下面一一来表(不按问题发生顺序)
1、提示:This Android SDK requires An... ADT to the latest version. 如图:
这个问题出现的原因是ADT(Android开发工具)的版本没有跟上Android SDK的版本。对于ADT的配置其实是在我们最初在Eclipse上配置Android开发环境时就有的一步,只不过时间一久就有点记忆模糊了。话说Android SDK4.4版本貌似变化很大,所以ADT应该也是要更新的,关于ADT的配置官网给出了步骤详解。如图:
大家只要进入【Help】-【Install New Software】-【Add】,按照上图把名字填成ADT Plugin,把URL写成官方给出的那个链接就行,如果小写的https不好使的话,大家可以试试改成大写的HTTPS或者改成http,然后点OK,如下图,选择【Developer Tools】和【NDK Plugins】两项,然后下一步,确定就OK了。
这样ADT就算配置完成。
2、从SVN中检出项目跟以前也有点不一样,以前是直接就能把项目下载到本地,现在不知道是什么原因,下载到本地的不是完整的项目。
这里还要说一下从SVN上导入项目到本地的时候,我们应该选择一个【做为新项目检出】,也就是在本地创建一个与项目名称一样名字的项目。如图:
这块有个小技巧教给大家如何快速创建一个本地项目,然后方便后续将无用文件删除的方法。如图:
在【Application Name】处填写与服务器上相同的项目名称,下面的【Project Name】和【Package Name】都会自动生成,然后不停的下一步,直到此处,如图:
这里同样只填写【Activity Name】处就行了,默认会是“MainActivitiy”,我的方法是在后面直接加几个数字或字母就行,比如111或aaa,同样下面的【Layout Name】和【Fragment Layout Name】也都会自动生成。
点击确定后会出现如下提示,这个时候请点【Cancel】,这个东西还没研究到底是什么,但一定是Android SDK4.4版本里的东东,看样子好像跟主题样式什么的有关。大家只要不进行覆盖就行了。
现在创建的项目中我们会发现虽然项目名称与服务器上的一致,但是根本就没有服务器上项目的文件,这时候右键点击【Team】只出现两项,看不到【更新】等操作。出现这种情况我们可以用以下方法解决,如图:
然后一直点下去,在这里选择【使用已有资源库位置】,下一步
在这里选择【使用项目名称做为文件夹名】,下一步
我们看会出现这个,建议选择【No】,然后就完成了。
这个时候我们会发现服务器上的文件已经全部下载到本地当中,我们再把先前创建的包(package)和布局文件(layout.xml)删除就行了,由于名字都是特殊的,也就比较好找了。但是问题远没有结束。
3、报错:activity_XXX cannot be resolved or is not a field
解决办法:遇到这个问题或者提示的时候,大家可以看看是不是在加了import android.R或者别的什么import XXX.R,如果有请删除。
4、继续报错:R cannot be resolved to a variable
这个时候不知道大家有没有想骂街的冲动,反正我是有了,刚刚就是我们主动去把import XXX.R给删除的啊,难道还要加回去不成?当然不,这个时候我们需要进入AndroidManifest.xml文件当中去,我们会发现package项的内容为我们最初创建项目时候的包名,这里我们需要改成服务器上的项目真正使用的包名,再查看有没有服务器项目上对应的Activity(应该是没有),如果没有的话,我们就需要所有的Activity都注册一下,然后设置一个启动的Activity。如图:
到这为止,我遇到的问题就全都解决了,项目也能在设备上运行成功了。虽然写出来的问题好像不太多,也没那么麻烦,但是自己确实是花了好长的时间去搞。而且问题4还是今天早上来的时候解决的,对,这篇文章其实是昨天开始写的。
PS:请大家谨慎使用问题2中说的【Team】-【Share Object】,与项目同步,这个东东有点危险总觉得。
希望能帮到有需要的人,节省大伙儿的时间。