2014-12-10 2 views
6

Mit this guide möchte ich ein bestehendes Projekt in Eclipse mit Gradle erstellen.: checkDebugManifest FAILED => Datei für Eigenschaft 'Manifest' existiert nicht

build.grale enthält:

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

Aber ich bekomme: enter image description here

Wie dieses Problem zu lösen? Ich habe mehrere Stunden lang verschiedene Ansätze versucht, aber nichts schien zu funktionieren.

+1

Es sieht so aus, als suche es nach dem Manifest im Standardverzeichnis von '\ src \ main \ AndroidManifest.xml'. Ist das tatsächlich der richtige Weg? –

Antwort

8

Der Standardprojektstruktur hat sich geändert, so dass, wenn Sie entweder das Gradle Plugin sagen, wo Ihr Manifest (und den Rest des Codes finden) oder wechseln Sie zu der neuen Struktur, das Gradle-Plugin wird an der falschen Stelle suchen.

In Ihrem Fall sucht es nach dem Manifest unter \src\main\AndroidManifest.xml, das die Standardeinstellung für neue Gradle-Projekte ist. Die alte Projektstruktur (von Eclipse + ADT verwendet) setzt das Manifest im Stammverzeichnis Ihres Projekts unter \AndroidManifest.xml.

Sie können einen alternativen Standort in Ihrem build.gradle geben Sie einen sourceSets Verschluss wie so mit:

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

Dies wird das Android Gradle Plugin konfigurieren, dass die alte Projektstruktur für Ihr Manifest, Java Quellen zu verwenden, und Ressourcen.

Wenn Sie das Import-Tool von Android Studio verwenden, sollte dies alles für Sie erledigt werden.

+0

manifest.srcFile 'AndroidManifest.xml' <- behebt das Problem. Es scheint, ich habe nicht alles versucht. Gute Erklärung! – burseaner

1

Dieses Handbuch hat nichts mit dem Erstellen eines vorhandenen Eclipse-Projekts mit Gradle zu tun. Das Wort "Eclipse" erscheint nirgendwo in der Anleitung.

Wenn Sie versuchen, zu Android Studio zu wechseln, verwenden Sie den Android Studio-Projektimportassistenten.

Wenn Sie versuchen, von Eclipse zu verwenden, aber auch Angebot Gradle baut, können Sie die Eclipse-Export-Assistenten ausführen eine build.gradle-Datei zu erzeugen, obwohl es wird einige zusätzliche Optimierungen erforderlich, als dass Assistent nicht in Altersklassen wurde aktualisiert .

Oder mit diesem build.gradle Datei starten und anpassen anpassen:

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') 
    } 
} 
Verwandte Themen