Nach dem Update auf Android Studio Chipmunk 2021.2.1 Patch 1 verhält sich der Run Configuration Dialog seltsam, denn er speichert nicht die Parameter korrekt ab. Es gibt jedoch Abhilfe.
Ich arbeite nun wieder (hin und wieder) an Argh! Earthlings! für Android und Desktop. Die Wiederaufnahme der Arbeit nach einer längeren Pause führte zwangsläufig zu einem Update verschiedener Tools, die ich für die Entwicklung nutze. Darunter OpenJDK, Android Studio, Gradle und libGDX.
Die Updates waren unproblematisch. Die Programmierer haben hier einen echt guten Job gemacht, sodass es keine größeren Überraschungen gab. Doch an einer Stelle gibt es Probleme, und zwar beim Build Dialog.
Während alte Build Konfigurationen wie gewünscht funktioniert haben, waren alle neuen oder geänderten Konfigurationen ohne Ergebnis ausführbar.
Ein Blick in die workspace.xml
im Ordner .idea/
erklärt das Problem. Funktionierende Konfigurationen führen unter der Option taskNames
eine Liste mit Werten, wie run
. Die Option scriptParameters
hat hingegen lediglich die echten "Parameter", wie --stacktrace
oder --debug
.
<configuration name="Desktop Build and Run Detailed"
type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/desktop" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="--stacktrace --debug --scan" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="run" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2">
<option name="Gradle.BeforeRunTask" enabled="true" tasks="build"
externalProjectPath="$PROJECT_DIR$/desktop" vmOptions="" scriptParameters="" />
</method>
</configuration>
Ändert man jedoch die Konfiguration oder legt eine neue an, werden die Werte falsch gespeichert. Nun wird run
als Parameter interpretiert und unter scriptParameters
hinterlegt. Die taskNames
sind hingegen leer.
<configuration name="Desktop Build and Run"
type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/desktop" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="run" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list />
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2" />
</configuration>
Das führt nun dazu, dass es keinen Task gibt, der ausgeführt werden kann. Der Build beginnt und endet sofort wieder, ohne Ergebnis.
Der Grund für dieses Missverhalten liegt offenbar in der Interpretation der Inputleiste im neuen Build Dialog von IntelliJ IDEA oder eben Android Studio 2021.2.1. Die Angaben unter Tasks and Arguments werden nicht korrekt geschnitten und verteilt.
Abhilfe schafft hier der Downgrade auf den alten Dialog. Hierzu muss man unter Help > Find Action > 'Registry' nach dem Schlüssel ide.new.run.config
suchen und den Wert abschalten.
Als Resultat erhält man unmittelbar den alten Dialog, in dem man mehr Kontrolle über Tasks und Arguments hat.
Weitere Hinweise auf das Problem findet man im Bugreport IDEA-284013.