Die Antwort, die local.properties oben manuell lädt, funktioniert offensichtlich, und die nächste, bei der Sie wissen müssen, welches Plugin angewendet wurde, sollte ebenfalls funktionieren.
Diese Ansätze sind für einige möglicherweise etwas besser, da sie allgemeiner sind, da sie unabhängig davon funktionieren, ob Sie das Anwendungs-, Test- oder Bibliotheks-Plugin verwenden. Mit diesen Snippets erhalten Sie außerdem vollen programmgesteuerten Zugriff auf alle Android-Plugin-Konfigurationen (Product Flavours, Build Tools-Version und vieles mehr):
Wenn Sie Zugriff auf eine build.gradle-Datei benötigen, die das Android Gradle Plugin verwendet, greifen Sie einfach direkt auf Android DSL zu, da es jetzt direkt verfügbar ist:
project.android.sdkDirectory
Die längere Form (unten) ist praktisch, wenn Sie benutzerdefinierte Gradle Tasks-Klassen oder Plugins erstellen oder einfach nur anzeigen möchten, welche Eigenschaften verfügbar sind.
// def is preferred to prevent having to add a build dependency.
def androidPluginExtension = project.getExtensions().getByName("android");
// List available properties.
androidPluginExtension.properties.each { Object key, Object value ->
logger.info("Extension prop: ${key} ${value}")
}
String sdkDir = androidPluginExtension.getProperties().get("sdkDirectory");
System.out.println("Using sdk dir: ${sdkDir}");
Zum Zeitpunkt dieser Veröffentlichung gibt es auch eine praktische adbExeEigenschaft, die definitiv erwähnenswert ist.
Dieser Code muss ausgeführt werden, nachdem das Android Gradle Plugin für den Gradle Livecycle konfiguriert wurde. In der Regel bedeutet dies, dass Sie es in die executeMethode von a Taskeinfügen oder NACH der androidDSL-Deklaration in eine Android-App / Bibliotheksdatei build.gradleeinfügen.
Diese Snippets enthalten auch die Einschränkung, dass sich diese Eigenschaften beim Aktualisieren der Android Gradle Plugin-Versionen ändern können, wenn das Plugin entwickelt wird. Testen Sie also einfach, wenn Sie zwischen Versionen des Gradle- und Android Gradle-Plugins sowie Android Studio (manchmal eine neue Version von Android) wechseln Studio benötigt eine neue Version des Android Gradle Plugins.