WAI
Status Update
Comments
oo...@gmail.com <oo...@gmail.com> #3
The field-minification is actually quite difficult to get exactly right and was recently changed. Simply, for fields on super-types, we might not be able to assign non-unique names and thus we run out of "names" from the obfuscationdictionary faster.
Could you check that some of your base-classes (classes not extending other classes except java.lang.Object) field names are actually minified?
I recently changed how indexes was assigned in a newer version and you might find more of your names are minified. Would you mind trying that version out to see if it matches closer to your expectation?
buildscript {
repositories {
maven {
url "http://storage.googleapis.com/r8-releases/raw/master "
}
}
dependencies {
classpath 'com.android.tools:r8:44b0356b65ab24779a8051c8f4dd50b0186437a8' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
You might also be able to use -overloadaggressively if not doing that already, although that can lead to verification errors.
Could you check that some of your base-classes (classes not extending other classes except java.lang.Object) field names are actually minified?
I recently changed how indexes was assigned in a newer version and you might find more of your names are minified. Would you mind trying that version out to see if it matches closer to your expectation?
buildscript {
repositories {
maven {
url "
}
}
dependencies {
classpath 'com.android.tools:r8:44b0356b65ab24779a8051c8f4dd50b0186437a8' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
You might also be able to use -overloadaggressively if not doing that already, although that can lead to verification errors.
pe...@google.com <pe...@google.com> #4
Thanks for quick response.
It should be fixed in 44b0356b65ab24779a8051c8f4dd50b0186437a8.
r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8) seems ok:
java.math.BigInteger d -> do
int auth -> µΗ
byte[] EMP -> µH
byte[] k -> µμ
java.math.BigInteger m -> if
r8 1.4.77:
byte[] EMP -> a
java.math.BigInteger d -> b
java.math.BigInteger m -> c
int auth -> e
byte[] k -> d
proguard:
byte[] EMP -> do
java.math.BigInteger d -> if
java.math.BigInteger m -> µμ
byte[] k -> µΗ
int auth -> µH
(don't worry about µΗ and µH in my example, it's not the same character.)
It should be fixed in 44b0356b65ab24779a8051c8f4dd50b0186437a8.
r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8) seems ok:
java.math.BigInteger d -> do
int auth -> µΗ
byte[] EMP -> µH
byte[] k -> µμ
java.math.BigInteger m -> if
r8 1.4.77:
byte[] EMP -> a
java.math.BigInteger d -> b
java.math.BigInteger m -> c
int auth -> e
byte[] k -> d
proguard:
byte[] EMP -> do
java.math.BigInteger d -> if
java.math.BigInteger m -> µμ
byte[] k -> µΗ
int auth -> µH
(don't worry about µΗ and µH in my example, it's not the same character.)
oo...@gmail.com <oo...@gmail.com> #5
However, r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8) crash my app.
If you want me to baksmali and check the reason, please let me know.
If you want me to baksmali and check the reason, please let me know.
oo...@gmail.com <oo...@gmail.com> #6
From the output, I found the issues.
r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8):
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$1:
r8 1.4.77:
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.AUx:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$1:
io.fabric.sdk.android.services.concurrency.AsyncTask$2 -> io.fabric.sdk.android.services.concurrency.AsyncTask$2:
io.fabric.sdk.android.services.concurrency.AsyncTask$3 -> io.fabric.sdk.android.services.concurrency.AsyncTask$3:
io.fabric.sdk.android.services.concurrency.AsyncTask$4 -> io.fabric.sdk.android.services.concurrency.AsyncTask$4:
io.fabric.sdk.android.services.concurrency.AsyncTask$AsyncTaskResult -> CoN.coN.coN.coN.coN.CoN.coN$coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$InternalHandler -> CoN.coN.coN.coN.coN.CoN.coN$cON:
io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor -> CoN.coN.coN.coN.coN.CoN.coN$CoN:
io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1:
io.fabric.sdk.android.services.concurrency.AsyncTask$Status -> CoN.coN.coN.coN.coN.CoN.coN$CON:
io.fabric.sdk.android.services.concurrency.AsyncTask$WorkerRunnable -> CoN.coN.coN.coN.coN.CoN.coN$AUx:
It seems r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8) don't shrink for class$[1-9]*.
Which change access policy, then throws IllegalAccessError.
r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8):
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$1:
r8 1.4.77:
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.AUx:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask -> CoN.coN.coN.coN.coN.CoN.coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$1:
io.fabric.sdk.android.services.concurrency.AsyncTask$2 -> io.fabric.sdk.android.services.concurrency.AsyncTask$2:
io.fabric.sdk.android.services.concurrency.AsyncTask$3 -> io.fabric.sdk.android.services.concurrency.AsyncTask$3:
io.fabric.sdk.android.services.concurrency.AsyncTask$4 -> io.fabric.sdk.android.services.concurrency.AsyncTask$4:
io.fabric.sdk.android.services.concurrency.AsyncTask$AsyncTaskResult -> CoN.coN.coN.coN.coN.CoN.coN$coN:
io.fabric.sdk.android.services.concurrency.AsyncTask$InternalHandler -> CoN.coN.coN.coN.coN.CoN.coN$cON:
io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor -> CoN.coN.coN.coN.coN.CoN.coN$CoN:
io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1 -> io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1:
io.fabric.sdk.android.services.concurrency.AsyncTask$Status -> CoN.coN.coN.coN.coN.CoN.coN$CON:
io.fabric.sdk.android.services.concurrency.AsyncTask$WorkerRunnable -> CoN.coN.coN.coN.coN.CoN.coN$AUx:
It seems r8 1.5.21-dev (44b0356b65ab24779a8051c8f4dd50b0186437a8) don't shrink for class$[1-9]*.
Which change access policy, then throws IllegalAccessError.
Description
In phonenumberutil.h it is stated:
For businesses that use telephony apps that span borders, displaying a list of Phone Numbers using the International and National formats in libphonenumber is inconsistent.
Actual
EXPECTED
I'd like to request a new
PhoneNumberFormat
ofE123
that EXACTLY follows the ITU-T Recommendation E.123 formatting using only spaces.Alternatively, add an option to allow one to disable the "local conventions" such that an
INTERNATIONAL
formatted number follows E.123 Recommendations.There is value in providing local conventions, however, there is also value in providing access to standards for consistency.
Use cases: