2014-12-10 8 views
6

Używanie this guide Chcę zbudować istniejący projekt w Eclipse z Gradle.: checkDebugManifest FAILED => plik określony dla właściwości 'manifest' nie istnieje

build.grale zawiera:

buildscript { 
repositories { 
    mavenCentral() 
} 

dependencies { 
    classpath 'com.android.tools.build:gradle:0.14.0' 
    } 
} 
apply plugin: 'android' 

android { 
    buildToolsVersion "19.1.0" 
    compileSdkVersion 16 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile files('libs/android-support-v4.jar') 
} 

Ale otrzymuję: enter image description here

Jak rozwiązać ten problem? Przez kilka godzin próbowałem różnych podejść, ale nic nie działało.

+1

Wygląda na to, że szuka Manifestu w domyślnej lokalizacji '\ src \ main \ AndroidManifest.xml'. Czy to właściwie właściwa ścieżka? –

Odpowiedz

8

Struktura domyślny projekt został zmieniony, więc chyba że albo gdzie powiedzieć wtyczki Gradle znaleźć swój manifest (i resztę swojego kodu) lub przejść na nową strukturę, wtyczka Gradle będzie wyglądać w niewłaściwym miejscu.

W twoim przypadku szuka manifestu pod numerem \src\main\AndroidManifest.xml, który jest domyślny dla nowych projektów Gradle. Stara struktura projektu (używana przez Eclipse + ADT) umieszcza manifest w katalogu głównym projektu pod numerem \AndroidManifest.xml.

Można określić inną lokalizację w build.gradle stosując zamknięcie sourceSets tak:

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'] 
     } 

     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
} 

To będzie skonfigurować wtyczkę Android Gradle do korzystania starą strukturę projektu do manifestu, źródeł Java i zasoby.

Jeśli używasz narzędzia do importowania Androida Studio, powinno to zająć się wszystkim.

+0

plik manifest.srcFile "AndroidManifest.xml" <- rozwiązuje problem. Wygląda na to, że nie próbowałem wszystkiego. Dobre wytłumaczenie! – burseaner

1

Ten przewodnik nie ma nic wspólnego z budową istniejącego projektu Eclipse z Gradle. Słowo "Eclipse" pojawia się nigdzie w przewodniku.

Jeśli próbujesz przenieść się do Android Studio, skorzystaj z kreatora importu projektów Android Studio.

Jeśli próbujesz używać Eclipse, ale również oferta Gradle buduje, można uruchomić kreatora eksportowej Eclipse, aby wygenerować plik build.gradle, choć będzie to wymagało trochę dodatkowego szczypanie, jako że kreator nie został zaktualizowany w wieku .

Albo zacząć z tym plikiem build.gradle i dostosować do własnych:

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

dependencies { 
    compile 'com.android.support:support-v4:21.0.0' 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "20.0.0" 

    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') 
    } 
} 
Powiązane problemy