Issue details
Jadx can decompile an APK if the XAPK contains split APKs, but not if the XAPK contains both APK and OBB file. I know I could simply extract the APK from the XAPK, but I'm lazy to do it
XAPK with APK+OBB
XAPK with split APKs
Relevant log output or stacktrace
====================================================================================================
INFO : output directory: com.my.hawk.air.shooter_42.4.31686
INFO : loading ...
WARN : Failed to load XApk file: F:\Android apps\HAWK Airplane games. Shoot em up\com.my.hawk.air.shooter_42.4.31686.xapk
java.nio.file.NoSuchFileException: C:\Users\xxxxx\AppData\Local\Temp\jadx-instance-6153344598230684411\plugins-data\xapk-input\com.my.hawk.air.shooter_42.4.31686.xapk_1774628062895\Android\obb\com.my.hawk.air.shooter\main.31686.com.my.hawk.air.shooter.obb
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:236)
at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:484)
at java.base/java.nio.file.Files.newOutputStream(Files.java:228)
at java.base/java.nio.file.Files.copy(Files.java:3160)
at jadx.plugins.input.xapk.XApkLoader.unpackXApk(XApkLoader.java:91)
at jadx.plugins.input.xapk.XApkLoader.checkAndLoad(XApkLoader.java:68)
at jadx.plugins.input.xapk.XApkCustomInput.loadFiles(XApkCustomInput.java:32)
at jadx.api.JadxDecompiler.loadInputFiles(JadxDecompiler.java:166)
at jadx.api.JadxDecompiler.load(JadxDecompiler.java:125)
at jadx.gui.JadxWrapper.open(JadxWrapper.java:82)
at jadx.gui.ui.MainWindow.lambda$loadFiles$6(MainWindow.java:542)
at jadx.core.utils.tasks.TaskExecutor.wrapTask(TaskExecutor.java:198)
at jadx.core.utils.tasks.TaskExecutor.runStages(TaskExecutor.java:173)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
WARN : Failed to load XApk file: F:\Android apps\HAWK Airplane games. Shoot em up\com.my.hawk.air.shooter_42.4.31686.xapk
java.nio.file.NoSuchFileException: C:\Users\xxxxx\AppData\Local\Temp\jadx-instance-6153344598230684411\plugins-data\xapk-input\com.my.hawk.air.shooter_42.4.31686.xapk_1774628062985\Android\obb\com.my.hawk.air.shooter\main.31686.com.my.hawk.air.shooter.obb
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:236)
at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:484)
at java.base/java.nio.file.Files.newOutputStream(Files.java:228)
at java.base/java.nio.file.Files.copy(Files.java:3160)
at jadx.plugins.input.xapk.XApkLoader.unpackXApk(XApkLoader.java:91)
at jadx.plugins.input.xapk.XApkLoader.checkAndLoad(XApkLoader.java:68)
at jadx.plugins.input.xapk.XApkCustomInput.load(XApkCustomInput.java:46)
at jadx.api.ResourcesLoader.loadFile(ResourcesLoader.java:191)
at jadx.api.ResourcesLoader.load(ResourcesLoader.java:59)
at jadx.api.JadxDecompiler.getResources(JadxDecompiler.java:469)
at jadx.api.JadxDecompiler.load(JadxDecompiler.java:131)
at jadx.gui.JadxWrapper.open(JadxWrapper.java:82)
at jadx.gui.ui.MainWindow.lambda$loadFiles$6(MainWindow.java:542)
at jadx.core.utils.tasks.TaskExecutor.wrapTask(TaskExecutor.java:198)
at jadx.core.utils.tasks.TaskExecutor.runStages(TaskExecutor.java:173)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
INFO : Loaded classes: 1, methods: 3, instructions: 42
INFO : Found 1 classes in disk cache, time: 2ms, dir: C:\Users\xxxxx\AppData\Local\skylot\jadx\cache\projects\com.my.hawk.air.shooter_42.4.31686-8342bf8c06bffe4e5610e14ca1734d19\code
Provide sample and class/method full name
XAPK link: https://apkcombo.com/hawk-airplane-space-games/com.my.hawk.air.shooter/
Jadx version
r2631.dcce3aa
Issue details
Jadx can decompile an APK if the XAPK contains split APKs, but not if the XAPK contains both APK and OBB file. I know I could simply extract the APK from the XAPK, but I'm lazy to do it
XAPK with APK+OBB
XAPK with split APKs
Relevant log output or stacktrace
Provide sample and class/method full name
XAPK link: https://apkcombo.com/hawk-airplane-space-games/com.my.hawk.air.shooter/
Jadx version
r2631.dcce3aa