Status Update
Comments
ch...@gmail.com <ch...@gmail.com> #2
i donnot understand why is the data the same?
sg...@google.com <sg...@google.com> #3
ch...@gmail.com <ch...@gmail.com> #4
What steps are needed to reproduce this issue? Frequency of occurrence?
Which Android build are you using? (e.g. AP4A.241205.013.A1)
Which device did you use to reproduce this issue?
Can you confirm if this issue is reproducible on a Pixel/Nexus device?
Please provide a sample project or apk to reproduce the issue. Also mention the steps to be followed for reproducing the issue with the given sample project or apk.
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.
ch...@gmail.com <ch...@gmail.com> #5
Please provide the requested information to proceed further. Unfortunately the issue will be closed within 7 days if there is no further update.
ch...@gmail.com <ch...@gmail.com> #6
for example,we hava 100 users.
20 users returned the same location information, longitude is 121.474000 and latitude is 31.230001。
30 users returned the same location information, longitude is 122.474000 and latitude is 32.230001。
15 users returned the same location information, longitude is 120.474000 and latitude is 30.230001。
as for Android build,all versions have it.
I dont reprodouce this issue.
what may be the cause of this issue?please
sg...@google.com <sg...@google.com>
ch...@google.com <ch...@google.com> #7
We have shared this with our product and engineering team and will update this issue with more information as it becomes available.
ap...@google.com <ap...@google.com> #8
Thanks for reporting this issue.
COARSE_LOCATION typically takes location information from the nearby cell tower. If many users are near the same cell tower, each of those users will be given the same position. Using a FINE position will give much more detailed information.
Also, in certain areas, for privacy reasons, a less-exact location will be given, and that less-exact location might be identical for many users. Again, a fine-location configuration will return more precise location data.
ap...@google.com <ap...@google.com> #9
We believe with reference to the above comment, your query has been answered, hence closing the bug. Please feel free to re-open the issue in the future if desired.
ap...@google.com <ap...@google.com> #10
ap...@google.com <ap...@google.com> #11
Branch: 8.2
commit 220c13adde560692ef4160f577b5343a41b77d95
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Dec 13 10:54:52 2023
Fix unsafe state pruning in access modifier traversal
Fixes:
Change-Id: Ida1dc01c4355cc50ee561100e29ed639bf4de01f
M src/main/java/com/android/tools/r8/graph/ImmediateProgramSubtypingInfo.java
M src/main/java/com/android/tools/r8/optimize/accessmodification/AccessModifierTraversal.java
M src/test/java/com/android/tools/r8/accessrelaxation/PackagePrivateOverrideWithInterfacePublicizerTest.java
ap...@google.com <ap...@google.com> #12
Branch: 8.2
commit 14f886adf3b4ee762f6244ae7db0e47aa3aaa25f
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Dec 13 10:55:11 2023
Version 8.2.41
Bug:
Change-Id: Ibff0492874768367753c54e527809d1eab98fc8c
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #13
Branch: 8.3
commit c076426f2d5a4f6a19308f78a5670d4a17045a51
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Dec 13 10:57:14 2023
Version 8.3.23
Bug:
Change-Id: Ibb9c79f745035f99c77fcd1d7db1964bd8c40064
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #14
Branch: 8.3
commit e54aa41361131312d4ce847c8723783f0b447b20
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Dec 13 10:56:39 2023
Reproduce illegal publicizing of package private method
Bug:
Change-Id: I00f0ca577043b14eef46a53a86a4aba4bcfb24d8
A src/test/java/com/android/tools/r8/accessrelaxation/PackagePrivateOverrideWithInterfacePublicizerTest.java
ap...@google.com <ap...@google.com> #15
Branch: 8.3
commit 4d174f1f7898046e3d15e3c738b5762b95836ac1
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Dec 13 10:57:03 2023
Fix unsafe state pruning in access modifier traversal
Fixes:
Change-Id: Ida1dc01c4355cc50ee561100e29ed639bf4de01f
M src/main/java/com/android/tools/r8/graph/ImmediateProgramSubtypingInfo.java
M src/main/java/com/android/tools/r8/optimize/accessmodification/AccessModifierTraversal.java
M src/test/java/com/android/tools/r8/accessrelaxation/PackagePrivateOverrideWithInterfacePublicizerTest.java
ch...@gmail.com <ch...@gmail.com> #16
Curious as to why R8 touches anything give a "keep all" instruction.
Glad I could be of help.
Chris
-----
"A temporary workaround is to rename the setRecyclerView method in SAOverscrollLLManagerTest to something else, so that it doesn't clash with the package private setRecyclerView in RecyclerView$LayoutManager."
ch...@google.com <ch...@google.com> #17
The issue is now fixed in R8 8.2.41 and 8.3.23.
You can update to R8 8.2.42, which will be bundled with AGP 8.2.1, by making the following changes to settings.gradle
.
pluginManagement {
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:8.2.42")
}
}
}
It is recommended to remove the above change to settings.gradle
when updating to AGP 8.2.1 (so that you will continue to get new versions of R8 when you update AGP in the future).
an...@google.com <an...@google.com> #18
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Iguana | 2023.2.1 Beta 1
- Android Gradle Plugin 8.3.0-beta01
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
an...@google.com <an...@google.com> #19
The fixes for this issue are now also available in:
- Android Studio Hedgehog | 2023.1.1 Patch 1
- Android Gradle Plugin 8.2.1
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Description
Problem and Stack Trace
If I subclass LinearLayoutManager and run it thru R8, I get an exception when I run my app.
12-03 14:53:28.210 7267 7267 I System.out: ----------- [BusinessListActivity 1] [DEBUG] line: 1 buildContent() exited successfully.
12-03 14:53:28.210 7267 7267 I System.out: ----------- [BusinessListActivity 1] [DEBUG] line: 1 onCreate() exited successfully
Point of Breakage
12-03 14:53:28.221 7267 7336 W Parcel : Expecting binder but got null!
12-03 14:53:28.222 1946 4862 D CompatibilityChangeReporter: Compat change id reported: 168419799; UID 10429; state: DISABLED
12-03 14:53:28.222 1946 4862 D CompatibilityChangeReporter: Compat change id reported: 273564678; UID 10429; state: DISABLED
12-03 14:53:28.227 1946 4862 D CoreBackPreview: Window{10efe5a u0 com.spillikinaerospace.ourhangoutsapp/com.spillikinaerospace.ourhangoutsapp.ui.businesslistactivity.BusinessListActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@f88d68, mPriority=0, mIsAnimationCallback=false}
12-03 14:53:28.228 7267 7267 D AndroidRuntime: Shutting down VM
12-03 14:53:28.228 7267 7267 E AndroidRuntime: FATAL EXCEPTION: main
12-03 14:53:28.228 7267 7267 E AndroidRuntime: Process: com.spillikinaerospace.ourhangoutsapp, PID: 7267
12-03 14:53:28.228 7267 7267 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.n(int, int)' on a null object reference
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView$m.onMeasure(Unknown Source:2)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView.onMeasure(Unknown Source:29)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:1031)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at androidx.appcompat.widget.ContentFrameLayout.onMeasure(Unknown Source:159)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7008)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at com.android.internal.policy.DecorView.onMeasure(DecorView.java:750)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.View.measure(View.java:27122)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4182)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2759)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3086)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:952)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:882)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:958)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:205)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.os.Looper.loop(Looper.java:294)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8177)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
12-03 14:53:28.228 7267 7267 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
12-03 14:53:28.230 1946 7663 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
12-03 14:53:28.231 1946 4862 W ActivityTaskManager: Force finishing activity com.spillikinaerospace.ourhangoutsapp/.ui.businesslistactivity.BusinessListActivity
------------------------------------------------------
Experiments.
1. Minimal subclass to demonstrate issue.
I created this minimal subclass which causes the app to crash when the activity that uses it is run.
When I remove the single method and keep only the constructors, the app runs just fine. If I add the method back in, the app crashes. I do not even need to call the method. (I'm thinking the JVM is doing some sort of optimization when it only sees constructors in the subclass.)
class SAOverscrollLLManagerTest : LinearLayoutManager {
constructor (context: Context) : super(context) {
}
constructor (context: Context, attributeSet: AttributeSet, int1: Int, int2: Int) :
super(context, attributeSet, int1, int2) {
}
constructor (context: Context, int: Int, boolean: Boolean) :
super(context, int, boolean) {
}
// Comment out this method and the app does not crash.
fun setRecyclerView(recyclerView: RecyclerView) {
// use this setting to improve performance if changes in content do not change
// layout size of RecyclerView
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = this
// recyclerView.overScrollMode = View.OVER_SCROLL_ALWAYS
// recyclerView.edgeEffectFactory = BounceEdgeEffectFactory()
}
}
2. R8 Keep settings
2.1 I tried this. App crashed under above conditions (subclass LinearLayoutManager)
Keep my app
-keep class com.spillikinaerospace.** { *; }
Keep RecyclerView (turned out not to be the issue)
-keep class androidx.recyclerview.widget.LinearLayoutManager { *; }
-keep class androidx.recyclerview.widget.GridLayoutManager { *; }
-keep class androidx.recyclerview.widget.RecyclerView { *; }
2.2 I tried this. App crashed under above conditions (subclass LinearLayoutManager)
Keep everything!
-keep class ** { *; }
------------------------------------------------------
Configuration Details.
1. proguard-rules.pro
In additino to Keep, I have these warning suppressions.
See
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
2. build.gradle Module
defaultConfig {
applicationId "com.spillikinaerospace.ourhangoutsapp"
minSdkVersion 33
targetSdkVersion 34
...
}
release {
debuggable false
shrinkResources false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '11'
}
3. gradle.properties
Generate as many Keeps as I can.
android.enableR8.fullMode=false
4. build.gradle Project
ext.kotlin_version = '1.8.20'
dependencies {
classpath 'com.android.tools.build:gradle:8.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
...
}
------------------------------------------------------
Android Studio Version
Android Studio Hedgehog | 2023.1.1
Build #AI-231.9392.1.2311.11076708, built on November 9, 2023
Runtime version: 17.0.7+0-17.0.7b1000.6-10550314 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.5
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 10
Metal Rendering is ON
Registry:
external.system.auto.import.disabled=true
ide.text.editor.with.preview.show.floating.toolbar=false