Obsolete
Status Update
Comments
sp...@gmail.com <sp...@gmail.com> #2
Thanks for the report Tolriq! Would it be possible for you to upload the APK built with D8 for which this fails? Is it possible to create a small reproduction project so that it is easier for us to reproduce?
ad...@gmail.com <ad...@gmail.com> #3
I've attached the bugged APK.
The application is very large and complex I'll try to create a repro app but as it can take a long time, would appreciate if you can confirm that you need it :)
And not fully related but tied to build tools I've reportedhttps://issuetracker.google.com/issues/73534863 that does not seems to be triaged. Maybe I chose a wrong section don't know if you can help to have it seen. As both aapt2 and D8 will become mandatory and both have problem with my app :(
And a thank you to the D8 team, build process with desugaring is quite faster for me :)
The application is very large and complex I'll try to create a repro app but as it can take a long time, would appreciate if you can confirm that you need it :)
And not fully related but tied to build tools I've reported
And a thank you to the D8 team, build process with desugaring is quite faster for me :)
pi...@gmail.com <pi...@gmail.com> #4
Thank you Tolriq! I'll have a look. Just to make sure I'm looking at the right thing: can you show me the D8 related parts of your gradle.properties when the app works and when the app doesn't work? I would like to figure out if this is related to D8 desugaring or D8 dexing.
ku...@gmail.com <ku...@gmail.com> #5
Gradle.properties that works.
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4G
#-XX:MaxPermSize=4G -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#Android
android.enableAapt2=false
android.enableBuildCache=true
android.enableD8.desugaring=false
android.enableD8=false
I only tested both D8 and D8.desugaring to true and then it crash. Will try in a few minutes with only D8 true and D8.desugar to false. (But a release build is 8 minutes compilation on a i6850K 64G Ram on an Samsung M2 960 Pro ;)
That part of the code looks like:
JobManager.queueTask(() -> {
if (Device.hasOreoApi()) {
try {
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null) {
List<NotificationChannel> channels = notificationManager.getNotificationChannels();
Both JobManager and Device are Kotlin objects but the Application is still Java.
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4G
#-XX:MaxPermSize=4G -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#Android
android.enableAapt2=false
android.enableBuildCache=true
android.enableD8.desugaring=false
android.enableD8=false
I only tested both D8 and D8.desugaring to true and then it crash. Will try in a few minutes with only D8 true and D8.desugar to false. (But a release build is 8 minutes compilation on a i6850K 64G Ram on an Samsung M2 960 Pro ;)
That part of the code looks like:
JobManager.queueTask(() -> {
if (Device.hasOreoApi()) {
try {
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null) {
List<NotificationChannel> channels = notificationManager.getNotificationChannels();
Both JobManager and Device are Kotlin objects but the Application is still Java.
[Deleted User] <[Deleted User]> #6
Ok so tested without D8 desugar and fails too.
The error message is a little different:
Process: org.leetzone.android.yatsewidgetfree, PID: 4943
java.lang.VerifyError: Verifier rejected class org.leetzone.android.yatsewidget.b due to bad method void org.leetzone.android.yatsewidget.b.run() (declaration of 'org.leetzone.android.yatsewidget.b' appears in /data/app/org.leetzone.android.yatsewidgetfree-1/base.apk)
at org.leetzone.android.yatsewidget.YatseApplication.onCreate(YatseApplication.java:383)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4518)
at android.app.ActivityThread.access$1500(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
The b method is the lambda passed to JobManager.queueTask
The error message is a little different:
Process: org.leetzone.android.yatsewidgetfree, PID: 4943
java.lang.VerifyError: Verifier rejected class org.leetzone.android.yatsewidget.b due to bad method void org.leetzone.android.yatsewidget.b.run() (declaration of 'org.leetzone.android.yatsewidget.b' appears in /data/app/org.leetzone.android.yatsewidgetfree-1/base.apk)
at org.leetzone.android.yatsewidget.YatseApplication.onCreate(YatseApplication.java:383)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4518)
at android.app.ActivityThread.access$1500(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
The b method is the lambda passed to JobManager.queueTask
te...@gmail.com <te...@gmail.com> #7
Thanks for being some responsive Tolriq, this is a huge help in debugging this. Can you upload the APK that works as well, then I can compare the code that works to the code that doesn't. Maybe that will give me an indication of what is going wrong here.
en...@google.com <en...@google.com>
ia...@gmail.com <ia...@gmail.com> #8
I'll do in 2 post to not mix the files.
Here's the apk built with D8 true and D8.desugaring false
The one that works is still compiling, should only have some updated translations and build number as I'll push it to beta track too :)
You should compare this one bugged with the next one unbugged as there's other code changes since the 1st uploaded APK.
Here's the apk built with D8 true and D8.desugaring false
The one that works is still compiling, should only have some updated translations and build number as I'll push it to beta track too :)
You should compare this one bugged with the next one unbugged as there's other code changes since the 1st uploaded APK.
ja...@gmail.com <ja...@gmail.com> #9
And here's the APK that does work.
ch...@orr.me.uk <ch...@orr.me.uk> #10
Thank you!
tr...@gmail.com <tr...@gmail.com> #11
Hum I've just seen that the previous build is not a beta build, should not impact at all the code that interest you, but this change a BuildConfig so there's much more code change between the 2 than I thought. Hope it's not a problem.
If it is I can trigger a broken beta build to compare.
If it is I can trigger a broken beta build to compare.
Description
Steps to Reproduce:
1. Add android:windowSoftInputMode="stateAlwaysHidden" to an activity
containing an EditText widget
2. Tap on the EditText widget while in a mode sans hardware keyboard
Expected Behavior: nothing ("The soft keyboard is always hidden when the
activity's main window has input focus.")
Actual Behavior: soft keyboard appears