2014-12-10 13 views
6

Utilizzo di this guide Desidero creare un progetto esistente in Eclipse con Gradle.: checkDebugManifest FAILED => il file specificato per la proprietà 'manifest' non esiste

build.grale contiene:

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

Ma ottengo: enter image description here

Come risolvere questo problema? Ho provato per diverse ore approcci diversi ma niente sembrava funzionare.

+1

Sembra che stia cercando il Manifest nel percorso predefinito di \ src \ main \ AndroidManifest.xml'. È in realtà il percorso corretto? –

risposta

8

La struttura del progetto di default è cambiato, quindi a meno che non si sia detto il plugin Gradle dove trovare la tua manifesta (e il resto del codice) o passare alla nuova struttura, il plugin Gradle cercherà nel posto sbagliato.

Nel tuo caso, sta cercando il manifest a \src\main\AndroidManifest.xml, che è l'impostazione predefinita per i nuovi progetti Gradle. La vecchia struttura del progetto (utilizzata da Eclipse + ADT) inserisce manifest nella radice del progetto in \AndroidManifest.xml.

È possibile specificare una posizione alternativa nella vostra build.gradle utilizzando una chiusura sourceSets in questo modo:

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

Ciò configurerà il plugin Gradle Android per utilizzare la vecchia struttura del progetto per la manifesta, sorgenti di Java, e risorse.

Se si utilizza lo strumento di importazione di Android Studio, è necessario occuparsi di tutto ciò.

+0

manifest.srcFile 'AndroidManifest.xml' <- risolve il problema. Sembra che non ho provato tutto. Buona spiegazione! – burseaner

1

Questa guida non ha nulla a che fare con la creazione di un progetto Eclipse esistente con Gradle. La parola "Eclipse" non compare da nessuna parte nella guida.

Se si sta tentando di spostarsi su Android Studio, utilizzare la procedura guidata di importazione del progetto Android Studio.

Se si sta tentando di utilizzare Eclipse, ma anche offerta Gradle costruisce, è possibile eseguire la procedura guidata di esportazione Eclipse per generare un file build.gradle, anche se richiede qualche ritocco in più, come quel mago non è stato aggiornato in epoche .

Oppure, iniziare con questo file build.gradle e regolare di conseguenza:

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