原文:http://tekeye.uk/android/export-android-studio-project

如果嫌复制出来的项目太多,可以用文后的批处理删除一些文件,Android studio再次打开时会重建gradle的。

Google首选的开发Android应用程序的集成开发环境(IDE)是Android Studio。有时app需要在PC之间移动,可能有以下几个原因,包括:

  • 将开发代码复制给新的程序员。
  • 将代码移动到另一台计算机或开发环境。
  • 分发演示,示例和培训源代码。

Google以前使用Eclipse IDE。它 支持一个导出选项,允许将项目导出为zip存档。它允许不选某些文件这样zip存档中便没有,然后可以将zip文件导入另一个Eclispe IDE。在Android Studio中有导出项目的功能吗?本文讨论如何导出Android Studio项目。简而言之,它是使用一个zip工具,但有考虑的因素。如果您着急就跳到Android项目导出文件步骤部分吧,要么就看下去吧。

Android Studio将项目移动到另一台计算机

在Android Studio导出项目到zip涉及使用外部工具,如7-Zip for Windows。在开发团队之间共享代码时,常用的方法是使用版本控制系统(VCS),即源代码管理(SCM)系统,Git系统非常受欢迎。但是,如何在更广泛的受众群体或不同的开发环境中共享代码呢?这是一个zip存档对分发代码有用的地方。特别是zip格式得到广泛的支持。幸运的是,很容易将Android Studio项目的重要部分(即代码和资源)进行压缩。zip中没有任何设置和配置文件,而这些是与特定的硬件和软件组合相关联的。开发人员对源代码可能不同的设置,甚至使用不同的开发工具。

Tek Eye文章“ Android Project Structure 简要介绍了Android应用程序在Studio项目中生成的默认文件。了解各种文件的作用我们就能够确定哪些文件需要压缩还是排除。确定要排除什么的一个好的起点是查看.gitignore文件的内容。创建项目时,Studio会生成以下默认 .gitignore 文件。它由Git确定不添加到源代码控制的文件夹和文件。任何目录中的这些文件和文件夹都可以从zip文件中排除:

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

要仅将源代码分发到另一个Studio,很多项目文件夹中可以删除其他文件有:

  • .idea - This directory relates to the Studio IDE so can be ignored.
  • .gitignore - The Git ignore file in any of the project directories is not required. They will be generated by Studio during the import.
  • build - Any build directories are not needed. Studio will recompile all the source code.
  • libs - The libs folder (below the app folder) if it is empty.
  • gradle - The gradle wrapper is not required as again it will be generated.
  • gradle.properties - Not required if the default has not been added to.
  • gradlew.* - The Gradle script files are not required (not usually modified).
  • local.properties - Stores the path to the SDK, this may be different on another machine therefore it is not required (it will be generated on import).

默认app 文件夹中的src目录位于项目的源代码的位置。请注意,其他源代码文件夹可以存在,并且应用程序文件夹可以重命名(重构)。默认情况下,文件中的所有内容都将在zip文件中。但是,并不是所有应用程序都可能需要:

  • 测试 - 如果应用程序没有写入单元测试,则可以排除src中的此文件夹。
  • androidTest - 如果应用程序没有检测测试,则可以排除src中的此文件夹。
  • proguard-rules.pro - 如果没有规则添加到默认文件,那么它不是必需的。

如果两个测试目录被删除,请在应用程序文件夹中编辑build.gradle文件,以删除junit依赖关系。同样,如果proguard-rules.pro文件被删除,编辑相同的build.gradle来删除对它的引用。请参阅下一节中更改build.gradle的详细信息。以上所有这些都意味着最小的zip存档将具有:

  • 该 app 目录(上面讨论的文件和目录)
  • 的 build.gradle 文件(一个项目和一个主要的app 目录)
  • 一个 settings.gradle 文件

Android项目导出文件步骤

以下是Windows操作系统下的步骤。对于其他系统,其他文件可能需要删除,例如 Mac 上的 .DS_Store。请记住,以下操作仅用于允许将应用的Android源代码导入到另一台机器上的另一个IDE中的Studio中。这些步骤基于默认项目结构,对于大型复杂项目可能有些更改。

Android project 存储在Studio中显示的文件系统中:

首先使用文件管理器,例如Windows资源管理器,将整个项目复制到另一个临时位置。然后从ZIP存档中不需要的副本中删除文件和文件夹(也可以参阅最后的基本批处理文件)。对复制的项目进行以下更改:

  • 删除目录.gradle
  • 删除目录.idea
  • 删除任何构建目录,包括应用程序中的一个
  • 删除gradle目录
  • 删除所有.gitignore文件,包括应用程序中的文件
  • 删除gradle.properties文件(如果尚未添加)
  • 删除gradlewgradlew.bat脚本文件,如果没有修改
  • 删除所有* .iml文件,包括应用程序中的一个
  • 删除local.properties文件
  • 删除app / libs目录,如果它是空的

如果libs目录被删除,那么build.gradle中的这个生成行不再需要了:

compile fileTree(dir: 'libs', include: ['*.jar'])

它可以删除。

  • 如果没有添加任何规则,请删除app / proguard-rules.pro

如果proguard-rules.pro被删除,则编辑build.gradle,使之如下:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

变为:

proguardFiles getDefaultProguardFile('proguard-android.txt')
  • 如果没有单元测试删除app / src中测试目录
  • 如果没有仪器测试,请删除app / src中androidTest目录

如果两个测试目录被删除,请从build.gradle依赖关系部分删除以下行:

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})

和(其中x.xx是版本号):

testCompile 'junit:junit:x.xx'

通过这些更改,复制的目录现在可以压缩,保留目录结构。创建的zip文件可以分发。

在Studio中导入ZIP文件

要在另一台计算机上导入项目,首先提取文件。在Studio中,导入不会移动任何文件夹或文件。因此,确保将项目提取到所需位置。在Studio中,使用“ Welcome "屏幕上的“ Import project 选项(返回到“Welcome” 屏幕,关闭所有打开的项目)。

从导入对话框中选择顶级build.gradle文件,并打开项目。显示一条要求设置Gradle的消息。选择确定

等待Studio配置项目,添加本地文件进行设置和Gradle(在Studio屏幕的底部观察状态栏)。该项目现在可以在Android Studio中进行编辑和运行。

可能无法更新错误

将项目导入Studio时,您可能会看到无法更新错误,例如无法更新Gradle:

在这种情况下,“  Unexpected Error”  对话框显示消息Unable to update wrapper to use Gradle x.y,其中x.y是版本号。它显示一个文件的路径,并在方括号中拒绝Access。通常这是因为文件是写保护的,去掉文件的只读属性。在Windows上使用项目目录中的上下文菜单(通常右键单击)。然后选择属性并清除只读复选框。单击应用并确认属性更改,将更改应用于此文件夹,子文件夹和所选文件

Failed to Sync Gradle 错误

导入项目时可以显示的另一个错误消息是当项目使用的Gradle版本不可用时,无法同步Gradle

这需要下载正确的版本。最好点击蓝色链接 Fix Gradle wrapper修复设置,并在错误消息中重新导入项目Gradle设置。这将与Studio正在使用的项目Gradle同步。可以防止显示此错误,请参阅下一节。

当显示Gradle更新对话框时,选择 Update 以更新项目的Gradle版本。

Gradle中的Version Independent Library Reference

如果Android项目不依赖于使用特定版本的库,那么build.gradle文件可以设置使用最新的可用版本。对于用于example project , demo project 很有用。在Gradle文件的依赖项部分中,将库的具体版本号更改为+。这告诉Gradle使用最新的可用版本。

例如来自应用程序目录中的build.gradle文件的此条目:

compile 'com.android.support:appcompat-v7:23.1.0'

可以更改为:

compile 'com.android.support:appcompat-v7:+'

该+可以用于次要版本,所以行:

compile 'com.android.support:appcompat-v7:23.+'

指定该库的最新版本23的次要更新。

同样,在项目的根build.gradle文件中更改:

classpath 'com.android.tools.build:gradle:2.2.3'

至:

classpath 'com.android.tools.build:gradle:+'

将项目使用Gradle从特定版本升级到最新版本(并可能防止同步Gradle错误失败)。但是,这可能会导致 Minimum Supported Gradle Version Error in Studio.。有时只有小通配符在某些版本的工作室不会有这个错误:

classpath 'com.android.tools.build:gradle:2.2.+'

开始 Android项目清理的批处理文件

在Windows PC上,以下基本批处理文件可用于执行本文中提到的大多数文件夹和文件删除。

注意:注意使用批处理文件,从错误的使用位置执行批处理,可能对项目代码造成很大的损失。

可以在复制的Android项目目录中创建此批处理文件,例如clean.bat。它将清理一个基本的Android项目到它的代码和Gradle构建文件(准备压缩和/或导入到Studio)。根据特定项目的需要调整命令。下面显示的批处理文件删除 test 目录和ProGuard文件。根据需要删除这些行,如果不删除,请记住编辑应用程序目录中的build.gradle文件以删除文章中详细介绍的引用。该  libs 目录被删除,如果该项目有额外的库(jar 文件)把这行也删除掉。小心使用批处理文件,后果自负。如有疑问请勿使用。

@echo Clean a Android Studio project ready for importing and zipping pure code
@echo Modify this file to meet project requirements
pause
@echo Remove Gradle code, added back in on import
rmdir .gradle /s /q
@echo Remove IDE files
rmdir .idea /s /q
del *.iml /f /s
del local.properties
@echo Remove build folders, will be recreated
rmdir build /s /q
rmdir app\build /s /q
@echo Remove Gradle Wrapper, will be added back in
rmdir gradle /s /q
@echo Remove Git ignore files
del .gitignore /f /s
@echo Remove other Gradle files
del gradle.properties
del gradle?.*
@echo Remove libs folder
rmdir app\libs /s /q
@echo Remove ProGuard rules
del app\proguard-rules.pro /f
@echo Remove test code
rmdir app\src\androidTest /s /q
rmdir app\src\test /s /q
@echo Clear Read-only attributes
attrib -R *.* /s
@echo Do not forget to edit build.gradle in the app directory

也可以看看

作者:Daniel S. Fowler   发布时间:2016年4月25日  更新:2017年2月5日

你要clean Android Studio project 么的更多相关文章

  1. android studio 导入一个已有的android studio project作为lib使用

    android studio 导入一个已有的android studio project作为lib使用 新项目来了. 需要搭建框架. android studio对我来说还是很陌生,之前一个项目在同事 ...

  2. Android Studio “Project Structure”选项目录结构显示异常

    在Android Studio中,可以在左上角切换项目的目录结构,project,android,等,一般切换project选项,会显示工程目录,但是,有时候就突然没有对应工程目录了.如下: 其实,看 ...

  3. start a new android studio project not working

    现象:点击无响应 解决:Configure -> Project Defaults -> Project Structure -> Platform Settings (SDK) c ...

  4. Android开发工具全面转向Android Studio(2)——AS project/module的CRUD

    本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个 ...

  5. android studio中project structure配置

    android studio project structure 1.project中填jdk路径 2.module中添androidsdk路径 3.sdks中填jdk路径

  6. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...

  7. Android Studio HelloWorld

    开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程: 接下来需要输入应用名称(第一个字母要大写 ...

  8. Android GreenDao with Android Studio IDE

    转:http://blog.surecase.eu/using-greendao-with-android-studio-ide/ In this tutorial we will show you ...

  9. Android Studio入门到精通

    链接地址:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门 ...

随机推荐

  1. Fiddler中如何抓取app中https(443端口)数据

    Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获手机发出的HTTP/HTTPS请求,总结下Fiddler截获IPhone和Android发出的HTTP/HTTPS包,前提条件是:安装 ...

  2. Docker - 运行 containers 使用在 swarm 模式下创建的 overlay 模式的 network

    前言 在Docker engine v1.12, 使用Swarm可以方便的创建overlay模式的网络,但是它只能被swarm下面的service所使用的,相对于container,这个网络是完全隔离 ...

  3. 防火墙上开放Oracle服务端口1521的方法

    近来由于工作需要,在Windows XP平台上安装了Oracle9i数据库作为测试之用,一切正常.但当客户机连接服务器时却总是超时,我首先想到了防火墙,当我打开1521端口时,连接操作仍然失败.我又怀 ...

  4. [OpenGL]配置GLFW

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  5. yarn工作流程

    YARN 是 Hadoop 2.0 中的资源管理系统, 它的基本设计思想是将 MRv1 中的 JobTracker拆分成了两个独立的服务 : 一个全局的资源管理器 ResourceManager 和每 ...

  6. (转)wxWidgets 2.9.2svn(3.x)最小体积编译方法

    官方论坛.网上记录的wxWidgets编译方法,会导致编译后的程序库非常大,原因在于对编译的方法选择不当.下面简单总结一下如何编译最新的SVN代码.下载最新源码(每日构建):http://biolpc ...

  7. javascript代码的小小重构

    写js也有那么段时间了,也看过几本关于js的书,从最初的<锋利的jquery><高性能javasrcipt>到<javascript设计模式>等,虽然看了些书,看到 ...

  8. java音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例

    前言:Java默认采用大端序存储方式,实际编码的音频数据是小端序,如果处理单8bit的音频当然不需要做转换,但是如果是16bit或者以上的就需要处理成小端序字节顺序. 注:大.小端序指的是字节的存储顺 ...

  9. 编写自己的Nmap(NSE)脚本

    编写自己的Nmap脚本 一.介绍 在上一篇文章Nmap脚本引擎原理中我们介绍了基本的NSE知识,这篇文章介绍如何基于Nmap框架编写简单的NSE脚本文件,下一篇文章,Nmap脚本文件分析(AMQP协议 ...

  10. R自带数据包

    datasets(R自带数据包) 作者:王彦博 作品来源:百度百科 precip #长度为70的命名向量 euro #欧元汇率,长度为11,每个元素都有命名 landmasses #48个陆地的面积, ...