Open hjb1991 opened 3 months ago
我也遇到同样的问题,从仓库中clone最新代码,并在测试文件夹中新建android虚拟环境时遇到这个问题,由于apk时32位的所以创建32位的环境代码如下:
emulator = AndroidEmulatorBuilder
.for32Bit()
.addBackendFactory(new Unicorn2Factory(true))
.setProcessName(packageName)
.build();
64位可以正常通过但是apk里so的文件路径不对,是64位的找不到。
仅初始化时就会报错,64位正常,切到一个较老的版本时又能用了 ,出错在enableVFP()这一步,跟so应该无关,因为仅在执行emulator的初始化就会开始报错 emulator = AndroidEmulatorBuilder.for32Bit() .setProcessName("com.dragon.read") .addBackendFactory(new Unicorn2Factory(false)) // .addBackendFactory(new DynarmicFactory(false)) .setRootDir(rootDir) .build();
Exception in thread "main" com.github.unidbg.arm.backend.BackendException: unicorn.UnicornException: Invalid argument (UC_ERR_ARG) at com.github.unidbg.arm.backend.Unicorn2Backend.reg_write(Unicorn2Backend.java:111) at com.github.unidbg.arm.backend.Unicorn2Backend.enableVFP(Unicorn2Backend.java:53) at com.github.unidbg.arm.AbstractARMEmulator.(AbstractARMEmulator.java:84)
at com.github.unidbg.linux.android.AndroidARMEmulator.(AndroidARMEmulator.java:35)
at com.github.unidbg.linux.android.AndroidEmulatorBuilder.build(AndroidEmulatorBuilder.java:22)
at com.github.unidbg.linux.android.AndroidEmulatorBuilder.build(AndroidEmulatorBuilder.java:6)
at com.ss.fanqie.FanqieRead_32.(FanqieRead_32.java:48)
at com.ss.fanqie.FanqieRead_32.main(FanqieRead_32.java:265)
Caused by: unicorn.UnicornException: Invalid argument (UC_ERR_ARG)