Skip to content

58057 classes translated successfully, 1 classes had errors #19

@ebauger

Description

@ebauger

First time I used the tool on macOS with M1 chips (ARM) on Python 3.9.5.

I got this Traceback for the SymbolTableHolder, where this specific class decompile well with jadx

58000 classes processed
Output written to com.myapp.android-enjarify.jar
com/myapp/android/symbols/SymbolTableHolder$GeneratedSymbolTable.class Traceback (most recent call last):
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 46, in _get
    return d[args]
KeyError: 65534

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 116, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=opts)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 100, in classFileAfterPool
    writeMethods(pool, stream, cls.data.methods, opts=opts)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 64, in writeMethods
    code_irs.append(writebytecode.getCodeIR(pool, method, opts=opts))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writebytecode.py", line 21, in getCodeIR
    irdata = writeir.writeBytecode(pool, method, opts)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeir.py", line 598, in writeBytecode
    VISIT_FUNCS[instr.type](method, dex, instr_d, type_data, block, instr)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeir.py", line 310, in visitConstString
    block.ldc(block.pool.string(val))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 80, in string
    def string(self, s): return self._get(CONSTANT_String, self.utf8(s))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 49, in _get
    d[args] = index = self._getInd(low, _width(tag))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 127, in _getInd
    raise error.ClassfileLimitExceeded()
enjarify.jvm.error.ClassfileLimitExceeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 46, in _get
    return d[args]
KeyError: b'createSymbolTable'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/main.py", line 38, in translate
    class_data = writeclass.toClassFile(cls, opts)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 119, in toClassFile
    pool, rest_stream = classFileAfterPool(cls, opts=options.ALL)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 100, in classFileAfterPool
    writeMethods(pool, stream, cls.data.methods, opts=opts)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 69, in writeMethods
    writeMethod(pool, stream, method, code_attrs.get(method))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/writeclass.py", line 49, in writeMethod
    stream.u16(pool.utf8(method.id.name))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 77, in utf8
    return self._get(CONSTANT_Utf8, s)
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 49, in _get
    d[args] = index = self._getInd(low, _width(tag))
  File "/Users/ebauger/Documents/src_app/enjarify/enjarify/jvm/constantpool.py", line 172, in _getInd
    raise error.ClassfileLimitExceeded()
enjarify.jvm.error.ClassfileLimitExceeded

58057 classes translated successfully, 1 classes had errors

Great work btw!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions