2017-08-04 37 views
10

Najnowsza wersja (3.0.0) dodatku Plugin dla systemu Android dla oprogramowania Gradle spowodowała uszkodzenie interfejsu API w celu manipulowania Variant Outputs. Ten interfejs API został wykorzystany do manipulowania plikami tworzonymi podczas kompilacji (np. AndroidManifest.xml) i został usunięty, aby poprawić czas konfiguracji.W jaki sposób można modyfikować dane wyjściowe wariantu za pomocą aplikacji Android Gradle Plugin 3.0.0+?

Jakie nowe interfejsy API są dostępne do manipulowania wyjściami wariantowymi i jak różnią się od interfejsów API 2.X?

+0

Jakie działania są Państwo szczególnie zainteresowani? – azizbekian

+0

Jestem szczególnie zainteresowany tym, jak manipulować outputFiles, ponieważ nie ma już gwarancji, że będą one dostępne dla różnych zadań podczas fazy konfiguracji. Jeśli pojawiły się jakieś inne istotne zmiany w tym API, to uważam, że zasługuje to na odpowiedź kanoniczną. – fractalwrench

+0

Nie mogę wymyślić kanonicznej odpowiedzi, czy byłbyś zadowolony z działającego przykładu? Miałem zamiar ustawić mój androidowy projekt 4 gradle na produkcję wyjściowego pliku APK o niestandardowej nazwie, czy to jest to, czego potrzebujesz? – Fabio

Odpowiedz

2

Zmiany w pliku wynikowym zostały udokumentowane w dokumencie Android Developer site.

Zasadniczo zamiast uzyskiwania dostępu do pliku wynikowego bezpośrednio z interfejsu gradle API zaleca się uzyskanie dostępu do katalogu zawierającego plik. Poniższy fragment ilustruje to za pomocą pliku manifestu, ale można go również zastosować do innych plików outputFiles.

android.applicationVariants.all { variant -> 
    variant.outputs.all { output -> 
     output.processManifest.doLast { 

      String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml" 
      def manifestContent = file(manifestPath).getText() 

      // Manipulate the file as needed 
     } 
    } 
}