從我更新到Android Studio 2.3後,在某些情況下會出現IDE錯誤:例如,當我單擊File->Project Structure
時,嘗試打開任何佈局XML,甚至單擊任何點任何build.gradle
文件的代碼(這些文件至少打開無例外)。錯誤說StackOverflowError: null
,堆棧跟蹤是在所有情況下是相同的:StackOverflowError:項目結構上的Android Studio中的null
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)
...最後2行重複,直到永遠。
如何才能找到此問題的根源?
它看起來像我的構建配置中的循環引用,或工作室的內部?但我無法親自找到任何東西。如果我至少知道堆棧跟蹤中提到的模式或參考是有幫助的。
事情我已經嘗試過:
- 無效緩存&重啓
- 刪除項目目錄
.idea/
和其他臨時文件夾 - 簽出項目到新位置
- 在
settings->build->gradle->experimental
啓用「新的項目結構對話框「 - 然後對話框工作,但關閉它仍然會發生同樣的錯誤,其他情況下仍然不起作用
我使用Android Studio 2.3.3更新了所有插件和Android庫,gradle 3.3和gradle插件2.3.1;所有在最新的gentoo linux上。