2017-07-20 4 views
1

Seit ich auf Android Studio 2.3 aktualisiert habe, gibt es in einigen Fällen einen IDE-Fehler: Wenn ich zum Beispiel auf File->Project Structure klicke, versuche ein beliebiges Layout-XML zu öffnen oder auf einen beliebigen Punkt zu klicken der Code einer beliebigen Datei build.gradle (diese mindestens ohne Ausnahmen öffnen). Der Fehler sagt StackOverflowError: null und der Stack-Trace ist in allen Fällen gleich:StackOverflowError: null in Android Studio auf Projektstruktur

null 
java.lang.StackOverflowError 
    at java.util.regex.Pattern.sequence(Pattern.java:2079) 
    at java.util.regex.Pattern.expr(Pattern.java:1996) 
    at java.util.regex.Pattern.compile(Pattern.java:1696) 
    at java.util.regex.Pattern.<init>(Pattern.java:1351) 
    at java.util.regex.Pattern.compile(Pattern.java:1028) 
    at java.lang.String.replaceAll(String.java:2223) 
    at com.android.tools.idea.gradle.dsl.parser.settings.ProjectPropertiesDslElement.getStandardProjectKey(ProjectPropertiesDslElement.java:52) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveProjectReference(GradleDslExpression.java:191) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:92) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslReference.getValue(GradleDslReference.java:66) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:152) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslReference.getValue(GradleDslReference.java:66) 
    at com.android.tools.idea.gradle.dsl.parser.elements.GradleDslExpression.resolveReference(GradleDslExpression.java:152) 

... und die letzten 2 Zeilen wiederholen für immer.

Was kann ich tun, um die Ursache dieses Problems zu finden?

Es sieht so aus, als gäbe es irgendwo in meinen Build-Konfigurationen oder den Interna von Studio einen Zirkelverweis? Aber ich kann nichts von Hand finden. Es wäre hilfreich, wenn ich zumindest wüsste, welches Muster oder welche Referenz in der Stack-Spur erwähnt wird.

Dinge, die ich schon versucht:

  • Invalidier Cache & Neustart
  • .idea/ und andere temporäre Ordner im Projektverzeichnis
  • Kontrolle über das Projekt an einen neuen Standort
  • in settings->build->gradle->experimental ermöglicht das Löschen " neuer Projektstrukturdialog "- dann funktioniert der Dialog, aber der gleiche Fehler tritt immer noch beim Schließen auf, und andere Fälle funktionieren immer noch nicht

Ich benutze Android Studio 2.3.3 mit allen Plugins und android libs aktualisiert, grandle 3.3 und Gradle Plugin 2.3.1; all das auf einem aktuellen gentoo linux.

Antwort

0

Ich habe das Problem gelöst. Es waren diese drei Zeilen in meinem Haupt build.gradle:

ext.kotlinVersion = kotlinVersion 
ext.supportLibVersion = supportLibVersion 
ext.playServicesVersion = playServicesVersion 

In diesem Projekt wird die *Version Variablen in gradle.properties Datei zugeordnet sind, nicht in build.gradle Dateien, so dass sie bereits zugänglich in allen Modul gradle Dateien, und die Linien oben Erstellen Sie eine Zirkelreferenz. (Ich bin kein Experte für Gradle, das ist nur eine Vermutung)

Ich denke, sie wurden von der Kotlin-Plugin an einem Punkt (die "Kotlin in Projekt konfigurieren" -Option) hinzugefügt, und die automatisierte Bearbeitung vermasselt unsere komplizierte Konfigurationen . Oder irgendein vorheriger Entwickler hat es dort gelassen. Ich kann es nicht auf einem sauberen Projekt reproduzieren.