Verified
Status Update
Comments
ga...@google.com <ga...@google.com> #2
Just for context: ViewModel has a final package-private method named clear. That method is unrelated to any method defined in another package in a subclass called clear
. Have we accidentally messed that up. We would not be the first ones to do so. In fact any sub class of ViewModel that has a clear
method will not work on Dalvik:
pa...@google.com <pa...@google.com> #3
The override of package private final methods was something I looked at earlier and we should handle the case correctly - except for the case where we have -allowaccessmodification. That seem to not be the case for this example so I will take a closer look.
ga...@google.com <ga...@google.com> #4
Project: r8
Branch: master
commit 55fcc18a27c5ed93acf6fe9db359a28ed5bbeab2
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:51 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55261
Branch: master
commit 55fcc18a27c5ed93acf6fe9db359a28ed5bbeab2
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:51 2020
Test for accessibility of override before caching in seen set
Bug: 171369796
Change-Id: Ic284dd68f1293eec0b3590349d7c6bfec562c7d0
M src/main/java/com/android/tools/r8/shaking/Enqueuer.java
M src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
pa...@google.com <pa...@google.com> #5
Project: r8
Branch: master
commit 32646725161fc43ba803e46e0e8cc0ce9bd61b6e
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:30 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
https://r8-review.googlesource.com/55260
Branch: master
commit 32646725161fc43ba803e46e0e8cc0ce9bd61b6e
Author: Morten Krogh-Jespersen <mkroghj@google.com>
Date: Fri Oct 23 10:45:30 2020
Add test for package private final override with interface error
Bug: 171369796
Change-Id: I5ecddb4173e3eceda57a489f0ba9f2f5dce5d3fc
A src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideInterfaceTest.java
Description
Android Studio 3.4 RC 3
Build #AI-183.5429.30.34.5400832, built on March 23, 2019
JRE: 1.8.0_152-release-1343-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.6
Version of Gradle Plugin: 3.3.2
Version of Gradle: 5.1.1
When you generate a new library module in Android Studio with New > Module > Android Library, it creates a proguard-rules.pro file for you, but it doesn't add it as a consumer proguard file to the library's gradle script. Thus if you add rules to keep specific classes in the library module's proguard rules, they will still not be kept when building the app unless you manually add it to the consumer proguard files or move the proguard rule to the app's proguard file.
Expected: When generating a new library module in Android Studio, it would include the following snippet in the new module's gradle script:
buildTypes {
release {
consumerProguardFiles 'proguard-rules.pro'
}
}
RIght now it's easy to miss this and think the rules you add will work correctly.