提交 a046f1ca 编写于 作者: S Skylot

core: ignore dex loading errors (#233)

上级 c25f918c
......@@ -13,6 +13,7 @@ import java.util.zip.ZipFile;
import com.android.dex.Dex;
import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -105,8 +106,11 @@ public class InputFile {
|| entryName.endsWith(instantRunDexSuffix)) {
switch (ext) {
case ".dex":
index++;
addDexFile(entryName, new Dex(inputStream));
Dex dexBuf = makeDexBuf(entryName, inputStream);
if (dexBuf != null) {
addDexFile(entryName, dexBuf);
index++;
}
break;
case ".jar":
......@@ -140,6 +144,16 @@ public class InputFile {
return index > 0;
}
@Nullable
private Dex makeDexBuf(String entryName, InputStream inputStream) {
try {
return new Dex(inputStream);
} catch (Exception e) {
LOG.error("Failed to load file: {}, error: {}", entryName, e.getMessage(), e);
return null;
}
}
private static Dex loadFromJar(File jarFile) throws DecodeException {
JavaToDex j2d = new JavaToDex();
try {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册