2013-10-23 10 views
13

Gibt es eine Möglichkeit, eine zusätzliche AndroidManifest.xml Datei für eine Gradettest-Anwendung anzugeben? Ich brauche es, um zusätzliche Berechtigungen und Aktivitäten für meine Komponententests anzugeben.AndroidManifest.xml für Gradle instrumentTest

UPD: Ich habe versucht, instrumnetTest Abschnitt in der build.gradle Datei hinzufügen, aber es hat nicht geholfen und ich immer noch Unable to resolve activity for: Intent Fehler

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 { 
     manifest.srcFile 'src/instrumentTest/AndroidManifest.xml' 
     java.srcDir 'src/instrumentTest/Java' 
    } 
} 
+0

war es möglich, dies zu umgehen? Ich stoße im Moment auf dieses Problem und fürchte, es gibt keine Möglichkeit, dies zu tun, da AndroidManifest.xml automatisch für InstrumentTest generiert wird: http://tools.android.com/tech-docs/new-build-system/ Benutzerhandbuch # TOC-Basics-and-Configuration Es ist wirklich restriktiv :( – Y2i

+0

Ich habe es geschafft, dies zu umgehen, aber nur durch die Android-Gradle-Plugin selbst ändern - ich glaube nicht, dass dies ohne zu erreichen möglich ist. – ZoFreX

+0

Ich möchte das auch tun, um das Symbol und den App-Namen in der Test-App zu überschreiben. Schade, dass es nicht unterstützt wird. @ZoFreX, wo hast du die Änderung vorgenommen und/oder hast du dich an die Google-Leute gewendet? –

Antwort

-2

Ja, Sie können in Ihrem build.gradle wenn Sie Ihre sourceSets definieren, können Sie den Pfad Ihrer Manifest angeben:

sourceSets { 
     main { 
      manifest.srcFile 'src/main/AndroidManifest.xml' 
      java.srcDir 'src/main/src' 
      res.srcDir 'src/main/res' 
      assets.srcDir 'src/main/assets' 
      resources.srcDir 'src/main/src' 
      aidl.srcDir 'src/main/src' 
     } 

instrumentTest { 
      manifest.srcFile 'src/instrumentTest/AndroidManifest.xml' 
      java.srcDir 'src/instrumentTest/src' 
      res.srcDir 'src/instrumentTest/res' 
      assets.srcDir 'src/instrumentTest/assets' 
      resources.srcDir 'src/instrumentTest/src' 
      aidl.srcDir 'src/instrumentTest/src' 
     } 
} 

Sie auf dieser Dokumentation Prüfung können: http://tools.android.com/tech-docs/new-build-system/user-guide

+0

Ich habe versucht, das zu tun, aber es hat nicht geholfen. –

+0

Das Manifest wird für Tests ignoriert. Nach den [Docs] (http://tools.android.com/tech-docs/new-build-system/user- guide # TOC-Grundlagen und Konfiguration): > Das sourceSet sollte keine AndroidManifest.xml enthalten, da es automatisch generiert wird. –

10

Sie können eine spezielle AndroidManifest.xml für Android Tests (früher Instrument Tests) angeben, wenn Sie in der Lage sind, die 0.13.0 (oder höher) Veröffentlichung des Android Gradle Plugin zu verwenden.

Legen Sie einfach die Datei unter src/androidTest/AndroidManifest.xml - die Manifest-Fusion wird sich um die Datei kümmern, wenn Sie die Task-Testaufgabe ausführen.

Es gibt ein Beispiel in der offiziellen Dokumentation "gradle-samples-0.13.zip\gradle-samples-0.13\androidManifestInTest" - wie man sehen kann, gibt es keine spezielle Konfiguration, um das Testmanifest enthalten zu lassen.

Verwandte Themen