Fixed
Status Update
Comments
yb...@google.com <yb...@google.com> #2
Are there any updates here?
hu...@google.com <hu...@google.com> #4
I couldn't move the logging off thread but I was able to address an area of concern in the callstack:
com.google.protobuf.Descriptors$FileDescriptor.internalBuildGeneratedFileFrom(Descriptors.java)
com.android.build.gradle.internal.cxx.logging.CxxLogging.<clinit>(CxxLogging.java:82)
com.android.build.gradle.internal.cxx.logging.LoggingMessage.getDescriptor(LoggingMessage.java:110)
com.android.build.gradle.internal.cxx.logging.LoggingMessage.hashCode(LoggingMessage.java:489)
java.util.HashMap.hash(HashMap.java:340)
java.util.HashMap.containsKey(HashMap.java:592)
java.util.HashSet.contains(HashSet.java:204)
This logic was deduplicating messages (including chatty 'info' messages). This deduplication shouldn't be needed anymore so I removed it.
I don't know how the 80ms from comment#1 was gathered so I can't say how much it has improved logging, but it should help quite a bit. Let me know if you can still measure a performance issue. The next step would be to reduce the 'info' that's logged.
com.google.protobuf.Descriptors$FileDescriptor.internalBuildGeneratedFileFrom(Descriptors.java)
com.android.build.gradle.internal.cxx.logging.CxxLogging.<clinit>(CxxLogging.java:82)
com.android.build.gradle.internal.cxx.logging.LoggingMessage.getDescriptor(LoggingMessage.java:110)
com.android.build.gradle.internal.cxx.logging.LoggingMessage.hashCode(LoggingMessage.java:489)
java.util.HashMap.hash(HashMap.java:340)
java.util.HashMap.containsKey(HashMap.java:592)
java.util.HashSet.contains(HashSet.java:204)
This logic was deduplicating messages (including chatty 'info' messages). This deduplication shouldn't be needed anymore so I removed it.
I don't know how the 80ms from
Description
Component used: AGP plugin with data binding activated
Version used: AGP 7.2.1, also reproduced with 7.4.0-alpha08
Using kotlin 1.6.20, it works Using kotlin 1.7.0, it doesn't
In a kotlin multiplatform library module with kotlin 1.7.0, data binding compiler is no longer able to resolve types of bound classes. I attached a simple reproduction project where you can see in the data_binding_artifact setter store that types are resolved to
error.NonExistentClass
. Later on it leads to a databinding errorCannot find a setter for XYZ
but the root cause is the type not being resolved properly.With Kotlin 1.7.0 (FAIL)
./gradlew :module:assembleDebug
Task succeeds but types are not resolved../gradlew :assembleDebug
Task fails due to data binding errorsWith Kotlin 1.6.20 (OK)
./gradlew :module:assembleDebug
Task succeeds../gradlew :assembleDebug
Task succeedsNote: Even with kotlin 1.6.20, it seems you have to build the project twice in order to make it work when it is configured as a project dependency.
Project structure which reproduce the issue is specific to kmm.
I wasn't sure if this issue was related to the databinding compiler, kotlin kapt gradle plugin or multiplatform gradle plugin so therefore, I will start creating this one and create another in jetbrains bug tracker if needed.