概述

在AndroidStudio中开发版本控制,除了Git就是SVN,和Eclipse不同,Android Studio没有提供单独的插件,只能和SVN客户端关联使用。

SVN客户端的下载安装

下载

下载地址:https://tortoisesvn.net/downloads.html
注意:在下载页的下面,有不同的语言包,可以选择下载一个中文语言包。下载完成后,点击安装 TortoiseSVN 与 LanguagePack语言包 进行安装即可。

安装

安装SVN时必须安装command line 功能,只有安装带有 command line 功能的 SVN 客户端,AndroidStudio才能使用。安装SVN时需要用户自定义选择 command line ,默认是不会自动安装的。

android里的svn需要专门安装吗 svn for android_android

Android Studio关联SVN客户端

SVN安装完成后,打开 Android Studio 中的Subversion配置面板(File——Setting…——Version Control——Subversion):

配置SVN的路径

选中Use Command Line Client ,选择浏览到你本地安装 TortoiseSVN 的 svn.exe 文件路径:

android里的svn需要专门安装吗 svn for android_安卓_02

提交代码到SVN

添加忽略文件

.idea文件夹

.gradle文件夹

所有module中的build文件夹(build、app/build、baseLibrary/build等)

所有的.iml文件

local.properties文件

File——Settings…——Version Control——Ignored Files

添加忽略的文件

android里的svn需要专门安装吗 svn for android_安卓_03


添加忽略的文件

android里的svn需要专门安装吗 svn for android_app_04


添加忽略的符合匹配规则的文件

android里的svn需要专门安装吗 svn for android_android_05

将项目同SVN服务器关联起来

此时只是将当前项目跟SVN服务器的目录关联在一起,并没有将项目提交到SVN服务器上,需要在完成建立连接后再次提交项目到SVN服务器。

VCS——Import into Version Control——Share Project(Subversion)

android里的svn需要专门安装吗 svn for android_安卓_06


android里的svn需要专门安装吗 svn for android_app_07


选择要关联的SVN地址及其他选项

在Define share target下

第一个选项是直接将整个文件都放到trunk文件夹下,

第二个选项可以再trunk下创建你当前项目的文件夹,

第三个选项在项目文件夹下有创建了一个trunk文件夹,

因此建议使用第二种方式;

第一次关联SVN服务器,需要登录:

android里的svn需要专门安装吗 svn for android_app_08


android里的svn需要专门安装吗 svn for android_安卓_09


android里的svn需要专门安装吗 svn for android_android_10

android里的svn需要专门安装吗 svn for android_android_11


选择SVN工作副本的格式化版本(jdk版本)

android里的svn需要专门安装吗 svn for android_app_12


选择1.6还是1.8?【网上一般说的是选择1.8比较好,但是个人使用过程中,大部分是选择1.6,可能和服务器的svn版本(较低的话选择1.6,较高的话选择1.8)有关系吧】。在这里可以先选择一个,如果上传代码的时候出现了Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束的问题,那么则重新设置即可。

android里的svn需要专门安装吗 svn for android_android_13


android里的svn需要专门安装吗 svn for android_android studio_14


点击OK等待一会儿,就能创建本地项目同SVN服务器的关联了,成功后会自动刷新本地的项目,待项目里的忽略内容变成绿色的即表示已经成功了。

提交代码到svn服务器

其实很简单,只需点击SVN相关操作按钮里的commit就行了(上图SVN相关操作按钮左起第二个按钮)

android里的svn需要专门安装吗 svn for android_安卓_15

android里的svn需要专门安装吗 svn for android_安卓_16


Android Studio会先对当前代码进代码分析,如果有错误或者警告会弹出如下的框,如果有错误冲突等需要解决后再提交,如果是警告可以忽略;

第一次将整个代码提交到SVN服务器时时间有可能很长,请耐心等待,之后再创建项目时就不会这么慢了。

Checkout SVN上的项目

File——New——Project from Version Control——Subversion

android里的svn需要专门安装吗 svn for android_android_17


android里的svn需要专门安装吗 svn for android_安卓_18


选择本地目录:

android里的svn需要专门安装吗 svn for android_android studio_19

浏览SVN上的内容

VCS——Browse VCS Repository——Browse Subversion Repository

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_20

查看svn的地址

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_21

查看svn提交日志

android里的svn需要专门安装吗 svn for android_app_22

查看svn提交日志涉及的文件

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_23


android里的svn需要专门安装吗 svn for android_app_24

Android Studio取消与SVN的关联/解决找不到Share Project(Subversion)的问题

当前项目关联svn服务器后,在VCS–>Import Into Version Control,会发现只有Import Into Subversion选项,并没有Share Project(Subversion)这个选项。

android里的svn需要专门安装吗 svn for android_android studio_25


在Project模式下有个.idea文件夹,找到vcs.xml文件,把里面的vcs=“svn"改为vcs=”"

android里的svn需要专门安装吗 svn for android_安卓_26


改完之后,会发现vcs.xml文件已经消失了。

去硬盘的项目目录中,把.svn文件(此文件为隐藏文件)全部删除

android里的svn需要专门安装吗 svn for android_安卓_27


这时就会发现Share Project选项出来了。

android里的svn需要专门安装吗 svn for android_android_28

解决Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束的问题

更换jdk版本即可。

android里的svn需要专门安装吗 svn for android_安卓_29


android里的svn需要专门安装吗 svn for android_android_30


如果无法修改,那么可以取消与SVN的关联或者删除本地硬盘的项目,重新checkout项目。

提交svn时AS对当前代码进代码分析提示的错误与警告

错误:方法的注释中的参数名命名规则不严谨,不能使用系统自带变量名,如:Date,date,assets

现象:

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_31


android里的svn需要专门安装吗 svn for android_android studio_32

解决方案:换个名称

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_33


错误:方法名的注释参数名和方法的实际参数名不一致

现象:

android里的svn需要专门安装吗 svn for android_android_34

解决方案:保持一致即可

android里的svn需要专门安装吗 svn for android_安卓_35


错误:代码中控制显示/隐藏只能使用View.VISIBLE,不能使用实际值

现象:

android里的svn需要专门安装吗 svn for android_android studio_36


android里的svn需要专门安装吗 svn for android_android_37


android里的svn需要专门安装吗 svn for android_android studio_38


解决方案:换成常量值,将0或者1修改为View.VISIBLE或者View.GONE

android里的svn需要专门安装吗 svn for android_app_39


错误:Error:(128, 23) Expected resource of type id

现象:

android里的svn需要专门安装吗 svn for android_android_40


解决方案:在报错位置所在的类上面添加一句话 @SuppressWarnings(“ResourceType”)

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_41


警告:类的注释参数名是中文

现象:

android里的svn需要专门安装吗 svn for android_app_42


android里的svn需要专门安装吗 svn for android_android studio_43


解决方案:换成英文

android StudioSVN代码比较

android里的svn需要专门安装吗 svn for android_android studio_44

android StudioSVN代码提交

android里的svn需要专门安装吗 svn for android_安卓_45

android StudioSVN代码撤销

android里的svn需要专门安装吗 svn for android_android studio_46

android StudioSVN版本冲突解决

手动修改自己的java文件,将两个人的的Java文件合并到一个文件,使用svn中的标记冲突已解决

android里的svn需要专门安装吗 svn for android_android里的svn需要专门安装吗_47


在使用SVN更新服务器上的代码时,有时会弹出代码冲突的对话框,问你是否进行合并,并提供了三种合并方案:accept yours(使用你的)、accept theirs(使用别人的)和merge(合并);

android里的svn需要专门安装吗 svn for android_android studio_48


前两个都是进行的覆盖操作,就不多做解释了;当你选择merge合并时,会弹出代码合并对照窗口,一共有三个屏,左右两侧时你和服务器不同的代码并高亮显示不同的部分,带有箭头和叉号,通过点击箭头将两边冲突的代码添加到中间的合并区域中去,点击叉号则辨识放弃那一段代码,待所有冲突处理完成后merge就成功了。

android里的svn需要专门安装吗 svn for android_安卓_49