{"record":{"id":"093d4cf79c7bf830","repo":"pxb1988/dex2jar","slug":"not-support-yet","errorCode":null,"errorMessage":"Not support yet.","messagePattern":"Not support yet\\.","errorType":"exception","errorClass":"DexException","httpStatus":null,"severity":"error","filePath":"dex-reader/src/main/java/com/googlecode/d2j/reader/DexFileReader.java","lineNumber":739,"sourceCode":"            return getMethod(method_id);\r\n\r\n        }\r\n        case VALUE_ENUM: {\r\n            return getField((int) readUIntBits(in, b));\r\n        }\r\n        case VALUE_ARRAY: {\r\n            return read_encoded_array(in);\r\n        }\r\n        case VALUE_ANNOTATION: {\r\n            return read_encoded_annotation(in);\r\n        }\r\n        case VALUE_NULL:\r\n            return null;\r\n        case VALUE_BOOLEAN: {\r\n            return ((b >> 5) & 0x3) != 0;\r\n        }\r\n        default:\r\n            throw new DexException(\"Not support yet.\");\r\n        }\r\n    }\r\n\r\n    private MethodHandle getMethodHandle(int i) {\r\n        methodHandleIdIn.position(i * 8);\r\n        int method_handle_type = methodHandleIdIn.getShort() & 0xFFFF;\r\n        methodHandleIdIn.getShort();//unused\r\n        int field_or_method_id = methodHandleIdIn.getShort() & 0xFFFF;\r\n\r\n        switch (method_handle_type) {\r\n        case MethodHandle.INSTANCE_GET:\r\n        case MethodHandle.INSTANCE_PUT:\r\n        case MethodHandle.STATIC_GET:\r\n        case MethodHandle.STATIC_PUT:\r\n            return new MethodHandle(method_handle_type, getField(field_or_method_id));\r\n\r\n        case MethodHandle.INVOKE_INSTANCE:\r\n        case MethodHandle.INVOKE_STATIC:\r","sourceCodeStart":721,"sourceCodeEnd":757,"githubUrl":"https://github.com/pxb1988/dex2jar/blob/b5bda4fb4935ae8b3869b422454ae3b3896c7bc1/dex-reader/src/main/java/com/googlecode/d2j/reader/DexFileReader.java#L721-L757","documentation":"When decoding an encoded_value (annotation/constant values), the reader's switch encountered a value type byte it has no case for, so it throws DexException(\"Not support yet.\"). This means the dex uses an encoded_value type the library has not implemented, not that the file is necessarily corrupt. It fires while reading annotations, static field initial values, or similar encoded data.","triggerScenarios":"A dex containing encoded_value types missing from the reader's switch (e.g. very new or rare value types like METHOD_HANDLE/METHOD_TYPE constants on newer dex formats) reached via DexFileReader annotation or encoded-array decoding paths.","commonSituations":"Reading dex files built for newer Android/API levels with a pinned old dex-lib version; bootstrap method / method-handle constants from DEX 038+ files; invoking-handle annotations in libraries compiled with new toolchains.","solutions":["Upgrade dex-reader/dex2jar to the latest release or snapshot that implements the missing encoded_value type","Recompile the input targeting an older DEX format (e.g. --min-api in d8) that only uses supported value types","Identify the offending value type byte and patch the reader's switch to handle it","Remove/refactor the annotation or constant using the unsupported value type if you control the source"],"exampleFix":"// before\n// d8 --min-api 28  # emits method-handle encoded values -> Not support yet\n// after\n// d8 --min-api 26 --output . classes/*.class  # or upgrade dex-lib version","handlingStrategy":"try-catch","validationCode":"// Detect DEX version before opening; newer formats may carry unimplemented value types\nbyte[] h = new byte[8];\n// after magic check: version = ((h[4]&0xFF)<<24)|((h[5]&0xFF)<<16)|((h[6]&0xFF)<<8)|0\nint version = ((h[4]&0xFF)<<24)|((h[5]&0xFF)<<16)|((h[6]&0xFF)<<8);\nboolean tooNew = version > 0x3033035; // 035/036/038 known-good for old lib; check your dex-lib version\nnull","typeGuard":null,"tryCatchPattern":"try {\n    new DexFileReader(file).accept(visitor);\n} catch (DexException e) {\n    if (\"Not support yet.\".equals(e.getMessage())) {\n        throw new UnsupportedOperationException(\n            \"dex-lib cannot decode an encoded_value in this DEX; upgrade dex-reader or lower --min-api\", e);\n    }\n    throw e;\n}","preventionTips":["Keep dex-reader/dex2jar at the latest version before parsing modern DEX (038/039/040)","Target older min-api when re-dexing so exotic encoded_value types are not emitted","Check the DEX version field in the header before parsing with an old library"],"tags":["dex","encoded-value","unsupported-feature"],"backgroundTag":"unsupported-operation","analyzedSha":"b5bda4fb4935ae8b3869b422454ae3b3896c7bc1","analyzedAt":"2026-09-08T00:44:01.258Z","contentChangedAt":"2026-09-08T00:44:01.258Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}