版权声明:本文为HaiyuKing原创文章,转载请注明出处!

概述

在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 ,默认是不会自动安装的。

  

剩下的就是更改安装目录,一路Next。在这里就不多讲了。

Android Studio关联SVN客户端

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

配置SVN的路径

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

如果输入框最右侧有个浏览的按钮没有显示出来,那么滑动底部的滚动条即可。

提交代码到SVN

添加忽略文件

Android Studio创建的Android项目,必须先来添加要忽略的文件,再上传SVN,一般需要忽略以下内容:

  1. .idea文件夹

  2. .gradle文件夹

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

  4. 所有的.iml文件

  5. local.properties文件

File——Settings...——Version Control——Ignored Files

添加忽略的文件

添加忽略的文件夹

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

最终效果:Android Studio3.0.1版本新建的项目运行后不会显示项目的build目录了。所以跟低版本相比较,少了项目build目录的忽略。

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

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

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

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

在Define share target下

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

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

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

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

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

  

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

选择1.6还是1.8?【网上一般说的是选择1.8比较好,但是个人使用过程中,大部分是选择1.6,可能和服务器的svn版本(较低的话选择1.6,较高的话选择1.8)有关系吧】。

在这里可以先选择一个,如果上传代码的时候出现了Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束的问题,那么则重新设置即可。

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

同时,操作栏出现的svn操作按钮:提交、更新

此时点击VCS菜单,出现了Subversion选项

项目鼠标右键,也出现了Subversion选项

提交代码到svn服务器

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

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

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

含有错误,不能提交!!

没有错误,可以提交!!

Checkout SVN上的项目

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

选择本地目录:

浏览SVN上的内容

 VCS——Browse VCS Repository——Browse Subversion Repository

查看svn的地址

查看svn提交日志

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

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

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

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

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

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

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

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

更换jdk版本即可。

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

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

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

现象:

  

解决方案:换个名称。

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

现象:

解决方案:保持一致即可。

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

 现象:

   

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

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

现象:

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

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

现象:

解决方案:换成英文

参考资料

Android Studio SVN 使用方法

SVN在Android Studio中的配置

SVN客户端安装与使用

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

Android Studio的SVN Performing VCS Refresh/Commit 长时间不结束

Androidstudio下打包apk提示Error: Expected resource of type id [ResourceType]解决办法

【Android Studio安装部署系列】十九、Android studio使用SVN的更多相关文章

  1. 【Android Studio安装部署系列】九、Android Studio常用配置以及快捷键

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 整理Android Studio的常用配置和快捷键. 常用配置 显示行号 临时显示 永久显示 File——Settings——Edi ...

  2. 【Android Studio安装部署系列】目录

    概述 从刚开始使用Android Studio到现在,下面所有目录下的操作,当时习惯性的把每一个整理成一个文档(其实就是简单文字描述+截图):有些地方当时是一知半解,现在会稍微明白一些.正好赶上现在有 ...

  3. 【Android Studio安装部署系列】三十六、Android studio3.2使用过程中注意事项

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio升级到3.2之后,运行旧项目的时候出现了各种情况,特此记录下. 一.打包选项多了,一般情况下选择APK即 ...

  4. 【Android Studio安装部署系列】二十五、Android studio使用NDK生成so文件和arr文件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio使用ndk的简单步骤. NDK环境搭建 下载NDK 下载链接:https://developer.and ...

  5. 【Android Studio安装部署系列】三十六、从Android Studio3.1.4升级到Android studio3.2【以及创建android p模拟器(未成功)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 因为想要使用Android P模拟器,所以需要将Android Studio升级到3.2版本以上. 按照官网的说法:参考<ht ...

  6. 【Android Studio安装部署系列】二十八、Android Studio查看其它APP的布局结构

    概述 日常使用别家的APP过程中,会遇到一些比较好看的布局,这时候我们就想学习一下别人的布局结构,以便参考. (1)手机连接电脑.设置手机为USB调试模式 参考<[Android Studio安 ...

  7. 【Android Studio安装部署系列】二十一、Android studio将项目上传到github中

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 两个相关概念:git和github Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git ...

  8. 【Android Studio安装部署系列】三十三、windows系统中通过SourceTree使用git

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 前期准备 选择代码托管服务器:gitlab.github.开源中国等. 注册账号 创建项目 安装git 参考<[Android ...

  9. 【Android Studio安装部署系列】二十四、Android studio中Gradle插件版本和Gradle版本关系

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在从Android Studio3.0.0版本升级到Android Studio3.0.1版本的时候,出现了一个问题,需要升级Gra ...

随机推荐

  1. 把封装脚本做成jar包

    前提: eclipse, selenium, maven 把二次封装过的脚本做成jar包, 这样可以在新建工程里也调用封装过的方法. 实现步骤: 1. project 右键 => maven = ...

  2. 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现

    本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案的实现者. 原文地址是https://data-artisans.com/blog/end-to-end ...

  3. Python初学者必看(1)

    python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  4. 深入css布局篇(2) — 定位与浮动

    深入css布局(2) - 定位与浮动      在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点.今天我们来深入学习一下css布局相关的知识 ...

  5. Postman-----将 A 请求中 response Body 中的参数值传入到下一个请求 B 的 request body 中作为参数发送请求

    问题:将A接口中response body的"id"传入到B接口的request body中. 解决办法: 1.在A接口的test中设置环境变量. 代码:var data = JS ...

  6. SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

    前言 在上篇中介绍了SpringCloud Config的使用,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的分布式配置中心( ...

  7. POLARDB · 最佳实践 · POLARDB不得不知道的秘密(二)

    前言 POLARDB For MySQL(下文简称POLARDB)目前是阿里云数据库团队主推的关系型数据库.线上已经有很多企业用户在使用并且稳定运行了很久.当然,由于POLARDB是为云上环境专门打造 ...

  8. 用wGenerator给编程提速

    1.需求设定 开发语言: java 数据库: mysql 持久化: mybatis 模式: mvc 视图引擎: thymeleaf 前端框架: bootstrap4 用以上的组合来开发一个公告管理的列 ...

  9. CBC 字节反转攻击

    一.CBC 简介 现代密码体制 现代密码中的加密体制一般分为对称加密体制(Symmetric Key Encryption)和非对称加密体制(Asymmetric Key Encryption).对称 ...

  10. WPF 小小案列(同步异步)

    private void BtnButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show("hello Word&qu ...