Status Update
Comments
ha...@google.com <ha...@google.com>
ga...@google.com <ga...@google.com>
sp...@google.com <sp...@google.com> #2
Is the problem reproducible for you in Studio Arctic Fox? I wasn't able to reproduce it.
mk...@opera.com <mk...@opera.com> #3
Android Studio Chipmunk | 2021.2.1 Canary 6
Build #AI-212.5457.46.2112.7968471, built on December 4, 2021
Runtime version: 11.0.12+7-b1504.28-7817840 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 4000M
Cores: 12
Registry: external.system.auto.import.disabled=true, debugger.watches.in.variables=false
Non-Bundled Plugins: com.intellij.marketplace (212.5457.65), Show As ... (1.0.3), com.dubreuia (2.3.0), String Manipulation (8.24.203.5981.1), com.google.mad-scorecard (1.2), net.aquadc.mike.plugin (0.19)
mk...@opera.com <mk...@opera.com> #4
I wasn't able to reproduce the problem with My Application.zip attached to
sp...@google.com <sp...@google.com> #5
If the problem is reproducible, what is the value of Gradle JDK in Settings?
ma...@gmail.com <ma...@gmail.com> #6
Show me what you've tried. Do exactly as on the video.
Also, I've noticed a different issue, that the mouse-back-key doesn't always go backward correctly on this project. Reported here:
Android Studio Bumblebee | 2021.1.1 Patch 2
Build #AI-211.7628.21.2111.8193401, built on February 17, 2022
Runtime version: 11.0.11+9-b60-7590822 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 8048M
Cores: 12
Registry: external.system.auto.import.disabled=true, ide.settings.move.mouse.on.default.button=true, debugger.watches.in.variables=false
Non-Bundled Plugins: GenerateSerialVersionUID (3.0.3), GenerateSerializationHelpers (1.0.6), Show As ... (1.0.3), com.dubreuia (2.2.0), com.github.beansoft.jadx.gui.idea (2021.2.1), com.intellij.marketplace (211.7628.36), String Manipulation (9.4.0), org.jetbrains.kotlin (211-1.6.10-release-923-AS7442.40), com.google.mad-scorecard (1.2), com.ppismerov.ksvu (0.0.1), net.aquadc.mike.plugin (0.21), izhangzhihao.rainbow.brackets (6.21), org.intellij.plugins.markdown (211.7142.37)
sp...@google.com <sp...@google.com> #7
I've finally noticed the difference between my and your actions. I was using Navigate > Declaration or Usages and you were invoking Navigate > Implementation(s). Navigate > Implementation(s) indeed doesn't navigate anywhere. I don't really know what "implementation" is supposed to mean for an Android resource, but the current behavior is clearly wrong.
mk...@opera.com <mk...@opera.com> #8
As for "usages", I prefer not to use it, because it often shows results that I don't want to see, and it puts them all at the top.
See for example the case of translated strings. I want to see the usages of a string, and instead I get to see all the translations of all languages, and only below it all I can see the real usages of it...
am...@google.com <am...@google.com> #9
mk...@opera.com <mk...@opera.com> #10
I improved behavior of Navigate > Implementation(s) for resource references in R classes, but unfortunately the list of suggestions now contains two elements, one is the element in the R class under the cursor and another is the resource file. The first suggestion is pretty useless since it doesn't navigate anywhere, but I was not able to get rid of it because it is controlled by the Java plugin without a mechanism to inject any custom logic. I'll continue experimenting with it in an attempt to find a cleaner solution.
am...@google.com <am...@google.com> #11
mk...@opera.com <mk...@opera.com> #12
Re #11 This is what I'm trying to do, but it looks infeasible at this point without upstream changes.
am...@google.com <am...@google.com> #13
:(
mk...@opera.com <mk...@opera.com> #14
Figured out a way to make it navigate directly. Rejoyce.
mk...@opera.com <mk...@opera.com> #15
I wonder if it makes sense to flip the roles of Navigate > Declaration or Usages and Navigate > Implementation(s) for Android resources. This way Ctrl+B would navigate directly and Ctrl+Alt+B would display a list of locale-specific options. What is your opinion?
am...@google.com <am...@google.com> #16
As for shortcuts, I don't use a lot of the official shortcuts (too many keys, sometimes very far from one another, so I customized them) so please write their names instead.
What exactly did you do?
The declaration&implementation of a resource are the same, because they are both in the same place. Maybe when they exist in multiple places, you could offer to reach each of them (please prefer the main one, like English for translations, as the first item).
As you look currently at "R.layout.some_layout", there is no point in staying there when performing any kind of navigation.
Same for strings. Same for drawables....
am...@google.com <am...@google.com> #17
With the fix Navigate > Implementation(s) goes directly to the resource for the default configuration. Navigate > Declaration or Usages shows a list of resources with the same name if there are more than one. I got a feeling that it would be more logical if they behaved the other way around. What do you think?
mk...@opera.com <mk...@opera.com> #18
For "find usages", I just wish it would first show the usages (or scroll to them) in the list. Sadly it first shows the resources instead.
For example, when I want to see all usages of some string, it first shows me all the translations to the string, and only at the bottom of the list the actual usages of it.
It's very annoying because I don't at translations as often as I look at actual usages of something...
mk...@opera.com <mk...@opera.com> #19
am...@google.com <am...@google.com> #20
@18 The ordering of find usages is a separate issue. It is tracked by
mk...@opera.com <mk...@opera.com> #21
@19 Thank you for reminding me. My fix was for Java and Kotlin only. Doesn't work properly in XML yet.
am...@google.com <am...@google.com> #22
@21 I'm also not familiar with how Compose works, so maybe check there too.
am...@google.com <am...@google.com>
an...@google.com <an...@google.com> #23
Dolphin Canary 8 contains the fix a for navigation from XML. Please let me know if you find any scenarios that are not working properly yet.
an...@google.com <an...@google.com> #24
st...@gmail.com <st...@gmail.com> #25
Yes.
zt...@gmail.com <zt...@gmail.com> #26
zt...@gmail.com <zt...@gmail.com> #27
Sorry, I made a mistake. The fix for the navigation from XML will be included in Dolphin Canary 9, not 8.
Description
> Task :app:mergeReleaseClasses FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeReleaseClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeClassesTask$MergeClassesWorkAction
> Zip file '/Users/.../build/app/intermediates/module_and_runtime_deps_classes/release/base.jar' already contains entry 'com/google/android/youtube/player/internal/u.class', cannot overwrite
The u.class mentioned in the error comes from a .jar file that I have in the libs dir.
I was looking in which AGP it started to break. When I get back to AGP 8.1.0-alpha10 it started to break with different error, this time related to R8 but mentioning the same base.jar file. I found the following issue
------------------
Version of Gradle Plugin: 8.1.0
Version of Gradle: 8.1.1
Version of Java: 17
OS: MacOS Ventura 13.4.1