你要clean Android Studio project 么


原文: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項目導出文件步驟部分吧,要么就看下去吧。

Mike Bugdroid的Android Logo

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中顯示的文件系統中:

Android應用程序項目結構

首先使用文件管理器,例如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” 屏幕,關閉所有打開的項目)。

Android Studio導入項目

從導入對話框中選擇頂級build.gradle文件,並打開項目。顯示一條要求設置Gradle的消息。選擇確定

在Studio導入上設置Gradle

等待Studio配置項目,添加本地文件進行設置和Gradle(在Studio屏幕的底部觀察狀態欄)。該項目現在可以在Android Studio中進行編輯和運行。

可能無法更新錯誤

將項目導入Studio時,您可能會看到無法更新錯誤,例如無法更新Gradle:

錯誤更新Gradle

在這種情況下,“  Unexpected Error”  對話框顯示消息Unable to update wrapper to use Gradle x.y,其中x.y是版本號。它顯示一個文件的路徑,並在方括號中拒絕Access。通常這是因為文件是寫保護的,去掉文件的只讀屬性。在Windows上使用項目目錄中的上下文菜單(通常右鍵單擊)。然后選擇屬性並清除只讀復選框。單擊應用並確認屬性更改,將更改應用於此文件夾,子文件夾和所選文件

修復Studio導入時的意外錯誤

Failed to Sync Gradle 錯誤

導入項目時可以顯示的另一個錯誤消息是當項目使用的Gradle版本不可用時,無法同步Gradle

Studio失敗了SYnc Gradle

這需要下載正確的版本。最好點擊藍色鏈接 Fix Gradle wrapper修復設置,並在錯誤消息中重新導入項目Gradle設置。這將與Studio正在使用的項目Gradle同步。可以防止顯示此錯誤,請參閱下一節。

當顯示Gradle更新對話框時,選擇 Update 以更新項目的Gradle版本。

工作室更新項目的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日  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM