我正在研究一个Android项目,但我的笔记本电脑已经格式化,所以我丢失了所有代码,但我手机上有一个签名的apk文件..每当我尝试使用dex2jar时,它会停止转换中途出现此错误。我怎样才能增加堆大小还是有另一种出路。我可以使用
签名的密钥对apk进行反编译C:\~dex2jar>d2j-dex2jar --force
classes.dex
dex2jar classes.dex -> classes-dex2jar.jar
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.objectweb.asm.Type.getInternalName(Unknown Source)
at com.googlecode.dex2jar.v3.V3ClassAdapter.searchEnclosing(V3ClassAdapt
er.java:179)
at com.googlecode.dex2jar.v3.V3ClassAdapter.build(V3ClassAdapter.java:13
0)
at com.googlecode.dex2jar.v3.V3ClassAdapter.visitField(V3ClassAdapter.ja
va:303)
at com.googlecode.dex2jar.reader.DexFileReader.acceptField(DexFileReader
.java:603)
at com.googlecode.dex2jar.reader.DexFileReader.acceptClass(DexFileReader
.java:439)
at com.googlecode.dex2jar.reader.DexFileReader.accept(DexFileReader.java
:330)
at com.googlecode.dex2jar.v3.Dex2jar.doTranslate(Dex2jar.java:84)
at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:239)
at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:230)
at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java
:109)
at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:168)
at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:34)
答案 0 :(得分:3)
制作d2j-dex2jar.bat
文件的副本,然后进行编辑。找到说明这一点的行:
java -Xms512m -Xmx1024m -cp "%CLASSPATH%"
"com.googlecode.dex2jar.tools.Dex2jarCmd" %*
更改-Xmx
参数,为自己提供更大的maxheap大小。保存它,看看你修改的BAT文件是否更好。 (在此脚本中没有优雅的方法来覆盖JVM设置。)
答案 1 :(得分:1)
如果您使用dex2jar-2.0
,则可以找到说明这一行:
java -Xms512m -Xmx1024m ******************************* 在d2j_invoke.bat而不是d2j_dex2jar.bat