我正在尝试在 Android 中使用Byte Buddy库,但出现错误:
java.lang.IllegalStateException:此 JVM 的版本字符串似乎无效:0
我还没有编码,只是:
ByteBuddy test = new ByteBuddy();
在我的 App.java
我已经导入:
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>0.7.7</version>
</dependency>
但它没有用,我尝试过:
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-android</artifactId>
<version>0.7.7</version>
</dependency>
但我仍然得到同样的错误。
编辑
我在初始化 ByteBuddy 之前放了这一行:
System.setProperty("java.version", "1.7.0_51");
但现在我得到了另一个错误:
原因:java.lang.UnsupportedOperationException:无法加载此类文件。
对于此代码:
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();