The latest AS uses an Android Gradle Plugin that cuts down the default JVM memory and uses the new R8 dexxer, and I think together those were creating my OOM condition. I fixed it by adding this line to local.properties:
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m
See the release notes for the gradle plugin here:
The reduced memory happened in 3.3.0 and R8 was introduced in 3.4.0.