原文: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. spring service层单元测试

    service层测试较简单,目前大多数测试主要是针对public方法进行的.依据测试方法划分,可以分为两种:基于mock的隔离测试和基于dbunit的普通测试. mock隔离测试 配置pom.xml ...

  2. eclipse hibernate导出数据库实体类

    打开eclipse->help->Eclipse Marketplace->查找hibernate->安装如下插件 只要安装其中一个,hibernate tool即可: 安装完 ...

  3. Flex 布局:语法篇

    网页布局(layout)是 CSS 的一个重点应用.布局的传统解决方案,基于盒状模型,依赖 display 属性 + position 属性 + float 属性.它对于那些特殊布局非常不方便,比如, ...

  4. spring异常处理器

    一.本篇文章旨在讨论异常处理器: 1.因为异常处理器在实战中通常用来处理开发人员自定义的运行时异常,所以如果要了解如何自定义运行时异常,请自行搜索相关资料. 2.本文的demo用IndexOutOfB ...

  5. OVS + dpdk 安装与实验环境配置

    ***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装       0:安装必要的工具            make            gcc           ...

  6. git clone https://github.com/istester/ido.git ,确提示“Failed to connect to 192.168.1.22 port 8080: Connection refused” 的解决办法 。

    不知道是否有同学遇到如下的问题: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo } span.s1 { } git clone ...

  7. 编译MapWinGis

    其实在github下载的MapWinGIS代码,在support文件夹下的build文件夹下的HowToBuild说明已经写的很清楚了, * How to build MapWinGIS.ocx** ...

  8. navicat连接oracle 报 ORA-12737 set CHS16GBK

    1首先,我们打开“工具”-->"选项"菜单,见到如下界面,依据OCI library(oci.dll) 路径,导航到 navicat oci 目录下,备份里面的文件(通过在该 ...

  9. 关于Handler的理解,子线程不能更新UI的纠正和回调的思考

    开发Android这么久了,总会听到有人说:主线程不能访问网络,子线程不能更新UI.Android的主线程的确不能长时间阻塞,但是子线程为什么不能更新UI呢?今天把这些东西整理,顺便在子线程更新UI. ...

  10. R语言重要数据集分析研究——搞清数据的由来

    搞清数据的由来 作者:李雪丽 资料来源:百度百科