diff --git a/test-app/app/src/main/java/com/tns/RuntimeHelper.java b/test-app/app/src/main/java/com/tns/RuntimeHelper.java index 90a64f16e..fa1542966 100644 --- a/test-app/app/src/main/java/com/tns/RuntimeHelper.java +++ b/test-app/app/src/main/java/com/tns/RuntimeHelper.java @@ -123,6 +123,18 @@ public static Runtime initRuntime(Context context) { ClassLoader classLoader = context.getClassLoader(); File dexDir = new File(rootDir, "code_cache/secondary-dexes"); + if (!dexDir.exists()) { + dexDir.mkdirs(); + } + if (!dexDir.exists() || !dexDir.canWrite()) { + if (logger.isEnabled()) { + logger.write("Unable to use dex dir: " + dexDir.getAbsolutePath() + ", falling back to files/secondary-dexes"); + } + dexDir = new File(appDir, "secondary-dexes"); + if (!dexDir.exists()) { + dexDir.mkdirs(); + } + } String dexThumb = null; try { dexThumb = Util.getDexThumb(context); diff --git a/test-app/runtime-binding-generator/src/main/java/com/tns/bindings/ProxyGenerator.java b/test-app/runtime-binding-generator/src/main/java/com/tns/bindings/ProxyGenerator.java index 546b42593..52506fbd5 100644 --- a/test-app/runtime-binding-generator/src/main/java/com/tns/bindings/ProxyGenerator.java +++ b/test-app/runtime-binding-generator/src/main/java/com/tns/bindings/ProxyGenerator.java @@ -58,6 +58,10 @@ public String generateProxy(String proxyName, ClassDescriptor classToProxy, Hash private String saveProxy(String proxyName, byte[] proxyBytes) throws IOException { File file = new File(path + File.separator + proxyName + ".dex"); + File parentDir = file.getParentFile(); + if (parentDir != null && !parentDir.exists()) { + parentDir.mkdirs(); + } file.createNewFile(); FileOutputStream stream = new FileOutputStream(file); stream.write(proxyBytes);