Sto cercando di utilizzare Byte Buddy libreria in Android ma ottengo un errore:errore utilizzando Byte amici su Android
java.lang.IllegalStateException: This JVM's version string does not seem to be valid: 0
ho ancora codificato nulla, solo:
ByteBuddy test = new ByteBuddy();
nella mia app .java
ho importato:
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>0.7.7</version>
</dependency>
ma non ha funzionato, per ho provato con:
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-android</artifactId>
<version>0.7.7</version>
</dependency>
ma ho ancora ottenere lo stesso errore.
EDIT
ho messo questa linea prima di inizializzare ByteBuddy:
System.setProperty("java.version", "1.7.0_51");
Ma ora ottengo questo un altro errore:
Caused by: java.lang.UnsupportedOperationException: can't load this type of class file.
per questo codice:
Class<?> dynamicType = new ByteBuddy(ClassFileVersion.JAVA_V6)
.subclass(Object.class)
.method(ElementMatchers.named("toString"))
.intercept(FixedValue.value("Hello World!"))
.make()
.load(getClass().getClassLoader(), AndroidClassLoadingStrategy.Default.WRAPPER)
.getLoaded();
Su Android, provare ad aggiungere la versione del file di classe in modo esplicito: new ByteBuddy (ClassFileVersion.JAVA_6), la dipendenza Android contiene un ClassLoadingStrategy specifico per Android. –
Ho modificato la strategia di caricamento della classe su Android e ho specificato ClassFileVersion, ma ottengo lo stesso errore. –
Non stai utilizzando la strategia di caricamento della classe Android. Le strategie di default non funzionano lì. Istanziare uno usando "nuovo". –