从我更新到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上。