Status Update
Comments
do...@traveloka.com <do...@traveloka.com> #3
What steps are needed to reproduce this issue? Frequency of occurrence?
Which device did you use to reproduce this issue?
Can you confirm if this issue is reproducible on a Pixel/Nexus device?
Android bug report (to be captured after reproducing the issue)
For steps to capture a bug report, please refer:
Alternate method
Navigate to “Developer options”, ensure “USB debugging” is enabled, then enable “Bug report shortcut”. Capture bug report by holding the power button and selecting the “Take bug report” option.
Note: Please upload the bug report and screenshot to google drive and share the folder to android-bugreport@google.com, then share the link here.
do...@traveloka.com <do...@traveloka.com> #4
I attached a project in
Run the app once to allow the BroadcastReceiver to register. Then rerun it over and over again.
On any API 35 device (I used an emulator and a Pixel 8 Pro), the BroadcastReceiver will get BOOT_COMPLETED
action every time you launch the app.
This seems to only happen when launching the app from Android Studio. When I force stop the app and launch it from the device itself, it doesn't happen. Something about the way AS launches the device is triggering the BOOT_COMPLETED
event. But only on API 35
ch...@google.com <ch...@google.com> #5
We have shared this with our product and engineering team and will update this issue with more information as it becomes available.
do...@traveloka.com <do...@traveloka.com> #6
I'm just now experiencing that something is not right. Regarding 2 types of intent event.
- android.intent.action.BOOT_COMPLETED
- android.intent.action.LOCKED_BOOT_COMPLETED
I also experience this when I launch the app from Android Studio. But I also get additional log.
- BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED action:android.intent.action.LOCKED_BOOT_COMPLETED dispatchLatency:1 completeLatency:604 dispatchRealLatency:0 completeRealLatency:604 receiversSize:1 userId:0 userType:android.os.usertype.full.SYSTEM
- BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED action:android.intent.action.BOOT_COMPLETED dispatchLatency:604 completeLatency:837 dispatchRealLatency:604 completeRealLatency:837 receiversSize:2 userId:0 userType:android.os.usertype.full.SYSTEM
- Device: S25 Ultra android 15
- Android Studio: 2024.2.2 Patch 1
ch...@google.com <ch...@google.com> #7
There should be one dump file per D8/R8 compilation. If your app depends on multiple modules and some of these are maybe built using D8, then there could be many dumps.
The dump for the R8 compilation can usually be identified by the fact that this dump has a higher timestamp than other dumps, is bigger than most other dumps, and has a proguard.config file in the dump.
You can share it privately with
do...@traveloka.com <do...@traveloka.com> #8
The problematic class for example is ExperienceItinerarySummaryDelegate, and method onProductSummaryCardClicked is not called properly.
let me know if any other information i need to provide.
do...@traveloka.com <do...@traveloka.com> #9
sg...@google.com <sg...@google.com> #10
That will be 3.0.72
.
The recommended way to use a different version of R8 is to add the following to your settings.gradle
or settings.gradle.kts
;
pluginManagement {
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:3.0.72") // <-- R8 version 3.0.72
classpath('com.google.guava:guava:30.1.1-jre') // <-- THIS IS REQUIRED UNTIL R8 3.2.4-dev
}
}
}
ch...@google.com <ch...@google.com> #11
For the record, this was due to the app searching for the first instance in a list that satisfied that x.getClass().getCanonicalName() == someCanonicalName
. In the original program, the instances were all of different class types, but after horizontal class merging, some of the instances ended up having the same class type, leading to different program behavior.
The suggested fix is to rewrite the predicate in way that does not use reflection (getCanonicalName()
) or add a keep rule:
-keep,allowobfuscation,allowshrinking class * extends AbstractBaseClass
Description
Kotlin Version: 1.5.30
Gradle version: 7.2
Hi our app behave differently when updating from AGP 4.2.2 to 7.0.1
Some method are not called properly.
Assume i have this 3 classes:
interface myInterface;
Class myBaseClass implements interface;
Class myImplementation extends myBaseClass;
Assume i have void onClick() method on interface, and implemented on myImplementation class. Somehow it not called when using AGP 7.0.1, minified and shrinkresources enable, and debuggable false.
These are some ways to fix the issue (any one of them will fix the issue):
1. Reverting back to AGP 4.2.2
2. @keep on myImplementation class
3. set debuggable to true
After checking the APK that contains bug, the <init> method on myImplementation class is missing. On APK that not contains bug the <init> method exist. I am not sure why proguard remove that method.
Do you have any suggestion or advice how to debug this issue ?
Thank you in advance