9

我已經從Eclipse遷移項目。該項目仍然具有來自eclipse的「舊」項目文件結構(請參閱http://developer.android.com/tools/projects/index.html)。有沒有辦法自動將文件結構更改爲新系統(請參閱http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Project-Structure)?如果我正確理解http://developer.android.com/sdk/installing/studio-tips.html「項目結構」部分,那麼在遷移時應該發生這種情況,但它不是 (可能是我的錯誤)。 所以我再次提出問題:是否可以自動更改文件結構?如果不是,我需要改變什麼?我需要在build.gradle中更改哪些內容?什麼是過時的文件/目錄?從Eclipse遷移到Android Studio gradle結構後更改項目文件結構

謝謝!

斯蒂芬

+1

歡迎來到Stackoverflow!如果您發現回覆有幫助,請投票。如果回覆成功回答您的問題,請點擊旁邊的綠色複選標記以接受答案。還請看看stackoverflow.com/questions/how-to-ask關於如何編寫一個好問題的建議 – buzeeg

回答

4

在遷移項目從Eclipse中的Android Studio中,沒有變化已經在項目結構完成。唯一已經改變的是新的.iml和.gradle文件。

Java代碼停留在project/src/文件夾,並沒有在project/src/main/java文件夾被移動(如從AndroidStudio一個新創建的項目)。

AndroidManifest文件還停留在project/文件夾並沒有在project/src/main/文件夾被移動(如從AndroidStudio一個新創建的項目)。 Configuring the Structure

對於AndroidStudio一個新創建的項目,構建的sourceSets部分:

在遷移過程中,build.gradle文件,以便能夠與gradle這個文件中的舊體制被描述編譯定製。 gradle這個文件:

sourceSets { 
    main.java.srcDirs = ['src/java'] 
    main.resources.srcDirs = ['src/resources'] 
} 

對於從Eclipse的一個移植項目,該文件的build.gradle的sourceSets部分必須是:

android { 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     instrumentTest.setRoot('tests') 
    } 
} 

因此,您應該能夠自定義您的項目結構並進行相應的構建。

+0

爲什麼Eclipse不能用main遷移到Studio?什麼原因?優點缺點? – powder366

+1

我不確定,但我認爲這是爲了retrocompatibility:也許Ant不能編譯創意風格的項目(與主文件夾)。你可以手動做,然後簡化你的build.gradle文件 – buzeeg

+1

我做了手動,有點棘手,但它的工作(在Studio中生成一個虛擬項目作比較),將是一個很好的選擇...謝謝.. 。 – powder366