Github pr #81 - correctly handle non-URI characters in filename

This commit is contained in:
Connor Tumbleson 2014-02-10 07:17:56 -06:00
parent 19a1a260a0
commit f85dc478b2
2 changed files with 5 additions and 3 deletions

View File

@ -34,6 +34,7 @@ v2.0.0 (TBA)
-Fixed (issue #238) - Fixed truncated UTF-16 strings -Fixed (issue #238) - Fixed truncated UTF-16 strings
-Fixed (issue #584) - Fixed horrible spacing, aligned for 4 spaces. -Fixed (issue #584) - Fixed horrible spacing, aligned for 4 spaces.
-Fixed (issue #196) - Fixed style crash due to malformed styles. -Fixed (issue #196) - Fixed style crash due to malformed styles.
-Fixed issue with non-URI standard characters in apk name (Thanks rover12421)
-Added output to list Apktool version to help debugging. -Added output to list Apktool version to help debugging.
-Updated known bytes for configurations to 38 (from addition of layout direction) -Updated known bytes for configurations to 38 (from addition of layout direction)
-Fixed NPE when handling odex apks even with --no-src specified. (Thanks Rodrigo Chiossi) -Fixed NPE when handling odex apks even with --no-src specified. (Thanks Rodrigo Chiossi)

View File

@ -217,9 +217,10 @@ public class Androlib {
// options.setIndent(4); // options.setIndent(4);
Yaml yaml = new Yaml(options); Yaml yaml = new Yaml(options);
FileWriter writer = null; Writer writer = null;
try { try {
writer = new FileWriter(new File(mOutDir, "apktool.yml")); writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(new File(mOutDir, "apktool.yml")), "UTF-8"));
yaml.dump(meta, writer); yaml.dump(meta, writer);
} catch (IOException ex) { } catch (IOException ex) {
throw new AndrolibException(ex); throw new AndrolibException(ex);
@ -556,7 +557,7 @@ public class Androlib {
// create filesystem // create filesystem
Path path = Paths.get(outFile.getAbsolutePath()); Path path = Paths.get(outFile.getAbsolutePath());
URI apkFileSystem = new URI("jar", path.toUri().toString(), null); URI apkFileSystem = new URI("jar", outFile.toURI().toString(), null);
// loop through files inside // loop through files inside
for (Map.Entry<String,String> entry : files.entrySet()) { for (Map.Entry<String,String> entry : files.entrySet()) {