使用APKtool回编译APK,出现错误如下:
    Exception in thread "main" org.yaml.snakeyaml.error.YAMLException: java.nio.char
    set.MalformedInputException: Input length = 1
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
        at org.yaml.snakeyaml.reader.StreamReader.(StreamReader.java:60)
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:412)
        at brut.androlib.Androlib.readMetaFile(Androlib.java:162)
        at brut.androlib.Androlib.build(Androlib.java:183)
        at brut.androlib.Androlib.build(Androlib.java:176)
        at brut.apktool.Main.cmdBuild(Main.java:218)
        at brut.apktool.Main.main(Main.java:74)
   Caused by: java.nio.charset.MalformedInputException: Input length = 1
        at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:338)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
        at java.io.InputStreamReader.read(InputStreamReader.java:184)
        at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:123)
        at java.io.Reader.read(Reader.java:140)
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)
        ... 7 more
     网上查了查没有相关的解决方法,倒是有一位对MalformedInputException这个错误本身进行了解释,大致就是中文转换这块出了问题,好像是“半个汉字”的问题。
     软件里中文还不少,因为smali文件已经成功的转为dex文件了,所以怀疑在xml文件中有问题。大致看了一遍感觉没用啥问题,而且xml文件有问题的话应该会报一个详细错误指出是哪个文件出错了。这样就很迷茫了,程序文件没有错误,那错误是怎么来的?
     这时突然看到apktool.yml这个文件,这是反编译apk时新建的文件,删掉这个文件就无法回编译,说明回编译时是用到了这个文件。内容很简单,其中有一个apkFileName: ************.apk,这里文件名是原apk的文件名,是中文的。感觉眼前一亮,会不会是这里出问题了。于是把文件名改成英文,又把整个文件夹也改成英文,回编译成功!
     后来又经过试验发现,不需要更改文件夹名字,只要把apkFileName: ************.apk这里更改就可以了,回编译后apk的名字跟文件夹名字是一样的,也就是说这个apkFileName: ************.apk好像没有什么用处!!

转载:回编译APK出错:java.nio.char set.MalformedInputException: Input length = 1的更多相关文章

  1. protobuf接口调用报错:java.nio.charset.MalformedInputException: Input length = 1

    使用protobuf定义的接口api发起http请求报错,日志如下: [-- ::] DEBUG AbstractPool: - server updated, node=, server={ nod ...

  2. 我的Java开发学习之旅------>Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常

    今天在使用Java NIO的Channel和Buffer进行文件操作时候,报了java.nio.charset.MalformedInputException: Input length = 1异常, ...

  3. org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

    项目启动报错2018-12-21 14:06:24.917 INFO 23472 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refr ...

  4. scala文件读取报错“java.nio.charset.MalformedInputException: Input length = 1”

    今天写spark程序的时候遇到了一个问题就是,读取文件的时候报了一个错:“Exception in thread "main" java.nio.charset.Malformed ...

  5. windows中文编码报错 com.google.gson.JsonIOException: java.nio.charset.MalformedInputException: Input length = 1

    昨天碰到一个问题:同一个请求页面,页面经过匹配后调用http的post协议接口,部署在linux环境的没问题,本地Eclipse启动的tomcat也没问题,直接启动本地tomcat却报错了: 18:4 ...

  6. Caused by: java.nio.charset.MalformedInputException: Input length = 1

    java.lang.IllegalStateException: Failed to load property source from location 'classpath:/applicatio ...

  7. 反编译Apk得到Java源代码

    原文章转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html 本人转载自:ht ...

  8. 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor

    开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...

  9. java对称加密报错:Input length must be multiple of 8 when decrypting with padded cipher

    HTTP Status 500 - Request processing failed; nested exception is javax.crypto.IllegalBlockSizeExcept ...

随机推荐

  1. Spring控制反转与依赖注入(IOC、DI)

    IOC: 反转控制   Inverse Of Control DI:依赖注入 Dependency Injection 目的:完成程序的解耦合 解释:在应用系统的开发过程中,有spring负责对象的创 ...

  2. supersr--addSubview和 insertSubView 区别

    A addSubview B  是将B直接覆盖在A的最上层  例子: [self.view addSubview:scrollView]; A insertSubView B AtIndex:2 是将 ...

  3. C 工厂模式 还有其他的模式

    http://blog.csdn.net/feixiaoxing/article/details/7081243

  4. 在Linux中安装JDK的步骤

    相信不少学习Java的朋友都在Windows操作系统中安装过JDK,这里就不对JDK做详细的介绍了. 在Windows下安装JDK可参考:JDK的安装和配置 1.下载JDK 我们可以去官网(http: ...

  5. Codeforces Round #371 (Div. 2)(set\unique)

    B. Filya and Homework time limit per test 1 second memory limit per test 256 megabytes input standar ...

  6. MVC - 11(下)jquery.tmpl.js +ajax分页

    继续 mvc-11(上).dto:http://www.cnblogs.com/tangge/p/3840060.html jquery.tmpl.js 下载:http://pan.baidu.com ...

  7. android:installLocation = "auto" 的用法

    在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:inst ...

  8. 在ubuntu上搭建开发环境5---联想Y470安装 ubuntu,解决双显卡发热等问题

    ubuntu14 没有解决显卡的问题的时候,会有这样的问题 1.耗电特别快.风扇狂转 2.鼠标键头显示有问题,乱闪,根本没法使用,容易卡住找不到鼠标箭头在哪里了:感觉图形界面显示也有问题,不稳定 解决 ...

  9. Delphi的枚举类型

    参考:http://blog.csdn.net/kissdeath/article/details/2060573 Delphi程序不仅可以用于数值处理,还更广泛的用于处理非数值的数据.例如:性别.月 ...

  10. 使用getopt函数对windows命令行程序进行参数解析

    getopt()是libc的标准函数,很多语言中都能找到它的移植版本. // -b -p "c:\input" -o "e:\test\output" bool ...