Skip to content

Android Java - failures encountered when integrating into a chromium-based project #134

Description

@wutiantong

My project integrated this SDK years ago to take advantage of its micro-vpn functionality on Android. Its version (20.1.5) is pretty old nowadays, so I am trying to upgrade it to the latest version, but I'm stuck with a few compilation issues that may require SDK changes to resolve. Note that I'm using a custom build system based on gn.

Obfuscation issue in featureflagsdk

Some classes in featureflagsdk are obfuscated into fullnames like a.a, a.b, etc. Unfortunately, this causes the name conflict with another library in my project. I know it's not a one-sided issue, but to me making improvements on either side would solve the problem, so I want to mention it here.
image

The companion object Companion could not be found in class issue in authmanagerlite

Some warnings like below are produced from authmanagerlite when processing with r8/d8, they block me because my project treats warnings as errors.
I assume that some code in authmanagerlite needs to be improved, this doc maybe helpful for that.

Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/customtab/DSAuthLogoutWebViewActivity.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.customtab.DSAuthLogoutWebViewActivity
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/LogoutService.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.LogoutService
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/authtoken/a.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.authtoken.a
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/OfflineLogoutService.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.OfflineLogoutService
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/userinfo/a/b.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.userinfo.a.b
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/authtoken/a/i.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.authtoken.a.i
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/customtab/WebViewActivity.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.customtab.WebViewActivity
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/b.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.b
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/CleanDatabaseService.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.CleanDatabaseService
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/b/f.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.b.f
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/b/e.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.b.e
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/AuthDomainChangedService.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.AuthDomainChangedService
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/customtab/CCTabDSAuthLogoutActivity.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.customtab.CCTabDSAuthLogoutActivity
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/sso/c.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.sso.c
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/data/a/a.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.data.a.a
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/customtab/CustomChromeTabLauncherActivity.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.customtab.CustomChromeTabLauncherActivity
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/a/a/a.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.a.a.a
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/b/a.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.b.a
Warning in obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar:com/citrix/authmanagerlite/data/model/a.class:
The companion object Companion could not be found in class com.citrix.authmanagerlite.data.model.a
Full command: ../../third_party/jdk/current/bin/java -Xmx2G -Djdk.util.zip.disableZip64ExtraFieldValidation=true -cp ../../third_party/r8/d8/lib/r8.jar:../../third_party/r8/custom_d8.jar org.chromium.build.CustomD8 --min-api 26 --desugar-dependencies gen/third_party/android_deps/com_citrix_android_authmanagerlitelib_java__classes__dex.desugardeps --classpath obj/third_party/android_deps/com_citrix_android_authmanagerlitelib_java/classes.jar --classpath obj/third_party/androidx/androidx_browser_browser_java.ijar.jar......

Invalid stack map table issue in ccklib

Another r8/d8 issue is produced from ccklib as below.

python3 ../../build/android/gyp/dex.py --depfile gen/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes__dex.d --output obj/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes.dex.jar --min-api=26 --r8-jar-path ../../third_party/r8/d8/lib/r8.jar --custom-d8-jar-path ../../third_party/r8/custom_d8.jar --warnings-as-errors --library --class-inputs=\[\"obj/third_party/android_deps/com_citrix_android_sdk_ccklib_java/classes.jar\"\] --desugar --classpath obj/third_party/android_deps/com_citrix_android_sdk_ccklib_java/classes.jar --classpath=@FileArg\(gen/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes.build_config.json:deps_info:javac_full_interface_classpath\) --desugar-dependencies gen/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes__dex.desugardeps --bootclasspath=@FileArg\(gen/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes.build_config.json:android:sdk_jars\) --classpath=@FileArg\(gen/third_party/android_deps/com_citrix_android_sdk_ccklib_java__classes.build_config.json:deps_info:javac_full_interface_classpath\) --force-enable-assertions
Warning in obj/third_party/android_deps/com_citrix_android_sdk_ccklib_java/classes.jar:com/citrix/cck/core/pqc/crypto/gmss/GMSSRootSig.class at Lcom/citrix/cck/core/pqc/crypto/gmss/GMSSRootSig;toString()Ljava/lang/String;:
Invalid stack map table at instruction index 36: invokevirtual Lcom/citrix/cck/core/pqc/crypto/gmss/GMSSRootSig;getStatByte()[[B, error: Expected initialized com.citrix.cck.core.pqc.crypto.gmss.GMSSRootSig on stack, but was byte[][].

ExportedReceiver issue from the manifest in securestorage

A lint warning is produced from securestorage when merging its manifest.

Warning: Exported receiver does not require permission [ExportedReceiver]

Please consider improve it and refer to -

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions