Skip to content

improve error message when invoking older "sdkmanager" shell scripts with newer Java version #9

@silbinarywolf

Description

@silbinarywolf

Idea:

  • Check Sdk/tools for what version it is
  • If it's too old, then disallow it and suggest the user upgrades

The reason:
Avoid issues when using OpenJDK and trying to invoke tools like sdkmanager or lint. Alternatively if we can capture the stderr when invoking these, we could print a suggested fix, such as updating commandline tools as per this: https://stackoverflow.com/a/58652345/5013410

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.tools.lint.client.api.LintClient.getSdk(LintClient.kt:856)
        at com.android.tools.lint.client.api.LintClient.getTargets(LintClient.kt:838)
        at com.android.tools.lint.client.api.LintClient.getCompileTarget(LintClient.kt:884)
        at com.android.tools.lint.detector.api.Project.getBuildTarget(Project.java:805)
        at com.android.tools.lint.LintCliClient.initializeProjects(LintCliClient.java:961)
        at com.android.tools.lint.client.api.LintClient.performInitializeProjects$lint_api_main(LintClient.kt:813)
        at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.kt:346)
        at com.android.tools.lint.LintCliClient.run(LintCliClient.java:155)
        at com.android.tools.lint.Main.run(Main.java:873)
        at com.android.tools.lint.Main.main(Main.java:131)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions