Closed HappyTsing closed 2 weeks ago
类似注释这样补是不行的,因为没有安卓环境?
@Override public DvmObject<?> callStaticObjectMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) { switch (signature) { case "java/security/KeyStore->getInstance(Ljava/lang/String;)Ljava/security/KeyStore;": // input = "AndroidCAStore" String input = vaList.getObjectArg(0).getValue().toString(); // 报错:java.security.KeyStoreException: AndroidCAStore not found // try { // // AndroidCAStore // KeyStore keyStore = KeyStore.getInstance(input); // return ProxyDvmObject.createObject(vm, keyStore); // // } catch (KeyStoreException e) { // throw new RuntimeException(e); // } return vm.resolveClass("java/security/KeyStore").newObject(null);
如果直接返回 null 的话,后面又要调用 aliases() 方法,如何构建 Enumeration?
@Override public DvmObject<?> callObjectMethodV(BaseVM vm, DvmObject<?> dvmObject, String signature, VaList vaList) { switch (signature) { case "java/security/KeyStore->aliases()Ljava/util/Enumeration;": // KeyStore keyStore = (KeyStore) dvmObject.getValue(); // try { // return ProxyDvmObject.createObject(vm,keyStore.aliases()); // } catch (KeyStoreException e) { // throw new RuntimeException(e); // } return vm.resolveClass("java/util/Enumeration").newObject(null); // 返回 null 会报错!!!! } return super.callObjectMethodV(vm, dvmObject, signature, vaList); }
已解决
类似注释这样补是不行的,因为没有安卓环境?
如果直接返回 null 的话,后面又要调用 aliases() 方法,如何构建 Enumeration?