mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 02:15:34 +00:00
cmd/gogio: [Android] report unsupported JDK versions when d8 fails
d8 doesn't check and fails with an inscrutable error when using unsupported JDK versions such as JDK 11. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -358,6 +358,10 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe
|
|||||||
)
|
)
|
||||||
d8.Args = append(d8.Args, classFiles...)
|
d8.Args = append(d8.Args, classFiles...)
|
||||||
if _, err := runCmd(d8); err != nil {
|
if _, err := runCmd(d8); err != nil {
|
||||||
|
major, minor, ok := determineJDKVersion()
|
||||||
|
if ok && (major != 1 || minor < 7 || 8 < minor) {
|
||||||
|
return fmt.Errorf("unsupported JDK version %d.%d, expected 1.7 or 1.8\nd8 error: %v", major, minor, err)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -566,6 +570,17 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe
|
|||||||
return unsignedAPKZip.Close()
|
return unsignedAPKZip.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func determineJDKVersion() (int, int, bool) {
|
||||||
|
java := exec.Command("java", "-version")
|
||||||
|
out, err := java.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
return 0, 0, false
|
||||||
|
}
|
||||||
|
var major, minor int
|
||||||
|
_, err = fmt.Sscanf(string(out), "java version \"%d.%d", &major, &minor)
|
||||||
|
return major, minor, err == nil
|
||||||
|
}
|
||||||
|
|
||||||
func signAPK(tmpDir string, apkFile string, tools *androidTools, bi *buildInfo) error {
|
func signAPK(tmpDir string, apkFile string, tools *androidTools, bi *buildInfo) error {
|
||||||
if err := zipalign(tools, filepath.Join(tmpDir, "app.zip"), apkFile); err != nil {
|
if err := zipalign(tools, filepath.Join(tmpDir, "app.zip"), apkFile); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user