JNI error: while using android apksignertool - java

I was trying to create a sample android application without using android-studio.While I tried to sign the package by $APKSIGNER sign --ks mykey.keystore bin/hello.unaligned.apk I got the following error.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool has
been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the
Java Runtime only recognizes class file versions up to 52.0.
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
I am using openjdk 1.8.0_265 on fedora32. Does it have something to do with jdk ?

version 53.0 means using java version 9, and you current jre is version 8, which can not run java 9 codes.
so download and configure to use jre 9.
download link

Related

Unsupported major.minor version 52.0 NetBeans Apache 12.2

in my school they asked me to make an application with JavaFXML, but I am having many problems with the IDE that I use, which is NetBeans Apache 12.2, because I have JDK 15 installed and it seems that since JDK 1.8 JavaFx does not come by default Anyway, I had to download JDK 1.7.8 so that it would allow me to make an application with JavaFX to do step by step as much as possible what my teacher does (If it were up to me, I would use any Java application and import the libraries) , but at the time of compiling the program it seems that it is compiling with JDK 15 or 1.8, I don't know, but the point is that I get an error for having compiled with a larger JDK. And I do not know how to configure NetBeans so that that does not happen, I hope you can guide me.
ant -f "C:\\Users\\home\\OneDrive\\Escritorio\\Laboratorio de ProgramaciĆ³n Orientada a Objetos\\JavaFXApplication2" jfxsa-run
jfxsa-run:
java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Exception in thread "main"
Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Version 52.0 means Java 1.8 and the error message means that you are compiling your java code with a Java 1.8 compiler but you are running it with a Java version that is less than 1.8. I guess, from your question, that you are running with 1.7.
I suggest that you remove all your JDK installations and simply install JDK 1.8. You can download it from here...
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
JDK 1.8 includes JavaFX.
If you prefer to use JDK 15, then you can download JavaFX 15 from here...
https://gluonhq.com/products/javafx/
The following link explains the java class file versions.
https://en.wikipedia.org/wiki/Java_class_file

Unsupported major.minor version despite using correct Java version

I'm running a script that uses Eclipse and I am seeing this error:
Exception in thread "main" java.lang.UnsupportedClassVersionError: my/file/path/goes/here/CreateEcoreFile : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Some googling led me to believe that I was perhaps trying to compile a Java 7 project with a Java 8 compiler. I have checked my system (Cent OS 6) and I only have Java 7 installed, I even downgraded my Eclipse to Neon 1.A and it's build path is Java 7.
$ java -version
java version "1.7.0_51"
What else can I do?
As per this answer version 52.0 means Java 8. Eclipse uses it's own ECJ compiler which is part of the IDE, which probably uses Java 8 as default.
Follow this guide and set the Java compiler version for your project to Java 7:
Go to Window -> Preferences
Go to Java -> Compiler
Select Compiler compliance level

Java run time error in my spring Java app [duplicate]

This question already has answers here:
How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
(51 answers)
Closed 4 years ago.
I am novice to Java and i directly started learning Java Spring (do not know if this is good idea).
I have made simple main class file, i did 'run as java project' and I am getting following error:
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/springdemo/MyApp has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
Following is my code:
Check your java version. Class version 53 indicates that Java 9 was used to compile the code. But in your screenshot jave 8 library added to the project can be seen (Java 8 expects class version 52 or below).
Right Click on your project, go to properties and in the properties window check the "Java Compiler" tab. May be there java 1.9 is selected.

Eclipse latest chrome version not supported in linex

I am run in eclipse getting below error
Please Any one tell me the solution
java.lang.UnsupportedClassVersionError: org/openqa/selenium/WebDriver : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
at java.lang.Class.privateGetPublicMethods(Class.java:2743)
at java.lang.Class.getMethods(Class.java:1480)
at org.testng.internal.TestNGClassFinder.(TestNGClassFinder.java:70)
at org.testng.internal.TestNGClassFinder.(TestNGClassFinder.java:40)
at org.testng.TestRunner.initMethods(TestRunner.java:400)
at org.testng.TestRunner.init(TestRunner.java:252)
at org.testng.TestRunner.init(TestRunner.java:222)
at org.testng.TestRunner.(TestRunner.java:171)
at org.testng.remote.support.RemoteTestNG6_9_10$1.newTestRunner(RemoteTestNG6_9_10.java:28)
at org.testng.remote.support.RemoteTestNG6_9_10$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_9_10.java:61)
at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:604)
at org.testng.SuiteRunner.init(SuiteRunner.java:170)
at org.testng.SuiteRunner.(SuiteRunner.java:117)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1359)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1346)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1200)
at org.testng.TestNG.runSuites(TestNG.java:1124)
at org.testng.TestNG.run(TestNG.java:1096)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
The problem is that your Java installation is out of date.
The version number (52) is Java 8, so if you are getting an exception that says 52 is not understood, then you must be running those tests using a JVM that is Java 7 or earlier. Code that is compiled for that Java 8 platform will not run on a Java 7 (or earlier) JVM.
Java 7 is out of date, and well beyond the official "end-of-life" (April 2015) .... and you should upgrade.
If you insist on using an out-of-date Java platform for your development, then you are going to need to download the source code for the selenium libraries, and recompile them using a Java 7 compiler. (And, if selenium is starting to use Java 8 features, you will need to roll back to an earlier selenium release ... or backport.)

Mac OS X tries to launch jar with Java 1.5 although it needs 1.6

I have a Java project which uses Java 1.6. I package a jar, the manifest simply states the Main-Class.
On the Mac, it fails to start since it tries to use 1.5 for it:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
Can I specify the 1.6 in the jar or do I need to alter the settings on the Mac?
Just start it by calling the correct java runtime from a JDK/JRE 6 installation, if you don't want to change default settings (although I would recommend to switch to Java 6).

Categories