2014-02-06 149 views
34

我有一個已經在Android Studio中運行的項目。無法將項目遷移到Android Studio中的Gradle

我已經打開Android Studio中的項目後,我得到的消息:

移植項目到搖籃? 該項目不使用Gradle構建系統。我們建議您遷移到使用Gradle構建系統。 有關遷移到Gradle的更多信息 不再顯示此消息。

More Information about migrating to Gradle的鏈接,雖然我已經在Android Studio我按照選項Migrating from IntelliJ Projects

由於我已經在我的項目的根目錄下有一個build.gradle文件,所以我修改了它以包含一些依賴關係。

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.7.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 

    compile "com.android.support:support-v4:18.0.+" 
    compile "com.android.support:appcompat-v7:18.0.+" 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

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

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
} 

按照指示,我已經跑了Android Studio終端窗口gradle assembleDebug但得到了一些錯誤。爲了解決這個錯誤,我必須創建一個local.propertiessdk.dir=C:\\Program Files (x86)\\Android\\android-sdk,並從/libs文件夾中刪除android-support-v4.jar文件,並從Project Structure中刪除Libraries->libs

我現在再次運行gradle assembleDebug,這一次它完成沒有任何錯誤。

我已經重新啓動Android Studio但在重新啓動後,我已經看到了該項目的External Libraries沒有support-v4appcompat-v7,在我班的一個我自Cannot resolve symbol Cursor Adapter標記爲錯誤import android.support.v4.widget.CursorAdapter;

如果我按下按鈕Sync project with gradle files我得到的消息:The project MyProject is not a Gradle-based project

誰能幫我搞清楚如何解決這個問題?

這裏是我的項目結構

enter image description here

+0

嘗試'文件>無效緩存/重啓',並檢查你是否得到相同的錯誤。請將您的項目結構包括在內,以便更好地理解問題。 – pyus13

+0

增加了結構,但是'File> Invalidate Caches/Restart'沒有做任何事情 – Favolas

回答

75

該項目認爲,它仍然是一個基於非搖籃工程;它不是存在的基於Gradle的build.gradle文件,但它是項目如何設置的。您需要重新導入您的項目才能完成對Gradle的轉換。

首先,看起來好像沒有settings.gradle文件;它看起來像你需要一個。由於您已將項目設置爲單模塊項目,因此可以將該文件放在項目的根目錄中,位於build.gradle旁邊。它應該包含這樣的:

import ':' 

今後如果你添加更多的模塊到你的項目,你可能需要將其轉換爲一個多模塊的目錄結構,但你並不需要現在就擔心。在任何情況下,現在你需要做重新導入Android Studio中:

  1. 關閉項目
  2. 備份您的項目
  3. 刪除.idea文件夾中的項目的根目錄
  4. 刪除所有.iml文件在您的項目
  5. 導入Android Studio中的項目,並提示您輸入文件的對話框中,選擇的build.gradle文件。

之後,你應該很好去。

+0

Yep.You是對的。我已經重新導入,現在一切正常。非常感謝 – Favolas

+0

在我的情況下,關閉項目並重新導入爲「導入非android工作室項目」工作。它自己創建了build.gradle等。 – ND27

+0

適合我!謝謝 –

-2
  1. 點擊文件
  2. 單擊導入項目
  3. 點擊用戶,然後AndroidStudioProjects
  4. 選擇你的項目,然後單擊確定

    注:如果您是從日食移動到Android工作室那麼你可以做同樣的事情,但選擇eclipse項目。

2

在我而言,當我試圖打開一個現有項目的gradle和AS沒有認識到它像一個gradle這個項目,問題是裏面settings.gradle文件。 settings.gradle已損壞,因爲由於某種原因,分號丟失。正確的結構是include ':app';其中app是項目模塊的名稱。

另外,如果你需要,你可以把一個以上的模塊,像這樣:include ':module1', ':module2', ':module3';

我希望它可以幫助別人。

1

我所做的只是嘗試在Android Studio的啓動窗口中導入帶有「導入Gradle,Eclipse ETC」選項的項目,選擇了我的gradle-incompatible項目導入,然後它通過自動詢問我是否導入了if我想做一個gradle構建項目,並且這次它沒有錯誤地正確導入。

這個過程非常簡單,沒有什麼可以擺弄討厭的設置,只要按照IDE自動修復,它會工作。

終於爲我工作了!

3

在我的情況:步驟1:項目結構> Settings.gradle(打開它,add-- 包括 ':應用';

步驟2:轉到搖籃選項卡(它通常目前在左或Android工作室右)>然後點擊全部刷新搖籃工程

第3步:邦.......我希望它的工作。(它的作品對我來說)

+0

這工作對我來說... settings.gradle文件丟失 - 我創建它,並按照你的指示,它像一個魅力工作! – iamanyone

相關問題