Cordova编译Android 22 以上版本,中文目录出错问题的解决办法

如果用corodva编译工程,并且工程是中文名,在windows下会报错,类似如下贴子

http://www.lai18.com/content/1316143.html

找遍网络没发现处理方法,细看后解决,其实原理很简单,android的文件都按照utf-8处理,但windows下的java默认是gbk,强制指定一下字符集即可。


自己的错误:

2016-01-07 10:49:50 :preDexDebug
2016-01-07 10:49:51 
2016-01-07 10:49:51 UNEXPECTED TOP-LEVEL EXCEPTION:
2016-01-07 10:49:51 java.lang.RuntimeException: D:\Work\SVN\Native\鎴戠殑宸ョ▼\build\src\platforms\android\build\intermediates\classes\debug: file not found
2016-01-07 10:49:51 at com.android.dex.util.FileUtils.readFile(FileUtils.java:51)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:169)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processOne(Main.java:672)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.run(Main.java:277)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.main(Main.java:245)
2016-01-07 10:49:51 at com.android.dx.command.Main.main(Main.java:106)
2016-01-07 10:49:51 
2016-01-07 10:49:51 UNEXPECTED TOP-LEVEL EXCEPTION:
2016-01-07 10:49:51 java.io.FileNotFoundException: D:\Work\SVN\Native\鎴戠殑宸ョ▼\build\src\platforms\android\build\intermediates\pre-dexed\debug\classes-bc78ef27922ebddaf5ac264df598226800028ed8.jar (系统找不到指定的路径。)
2016-01-07 10:49:51 at java.util.zip.ZipFile.open(Native Method)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:215)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:145)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:159)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processOne(Main.java:672)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.run(Main.java:277)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.main(Main.java:245)
2016-01-07 10:49:51 at com.android.dx.command.Main.main(Main.java:106)
2016-01-07 10:49:51 2 errors; aborting
2016-01-07 10:49:51 
2016-01-07 10:49:51 FAILURE: Build failed with an exception.
2016-01-07 10:49:51 
2016-01-07 10:49:51 * What went wrong:
2016-01-07 10:49:51 Execution failed for task ':dexDebug'.
2016-01-07 10:49:51 > com.android.ide.common.internal.LoggedErrorException: Failed to run command:
2016-01-07 10:49:51 D:\Work\BeX5\tools\adt-sdk\build-tools\23.0.2\dx.bat --dex --no-optimize --output D:\Work\SVN\Native\我的工程\build\src\platforms\android\build\intermediates\dex\debug --input-list=D:\Work\SVN\Native\我的工程\build\src\platforms\android\build\intermediates\tmp\dex\debug\inputList.txt
2016-01-07 10:49:51 Error Code:
2016-01-07 10:49:51 1
2016-01-07 10:49:51 Output:
2016-01-07 10:49:51
2016-01-07 10:49:51 UNEXPECTED TOP-LEVEL EXCEPTION:
2016-01-07 10:49:51 java.lang.RuntimeException: D:\Work\SVN\Native\鎴戠殑宸ョ▼\build\src\platforms\android\build\intermediates\classes\debug: file not found
2016-01-07 10:49:51 at com.android.dex.util.FileUtils.readFile(FileUtils.java:51)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:169)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processOne(Main.java:672)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.run(Main.java:277)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.main(Main.java:245)
2016-01-07 10:49:51 at com.android.dx.command.Main.main(Main.java:106)
2016-01-07 10:49:51
2016-01-07 10:49:51 UNEXPECTED TOP-LEVEL EXCEPTION:
2016-01-07 10:49:51 java.io.FileNotFoundException: D:\Work\SVN\Native\鎴戠殑宸ョ▼\build\src\platforms\android\build\intermediates\pre-dexed\debug\classes-bc78ef27922ebddaf5ac264df598226800028ed8.jar (系统找不到指定的路径。)
2016-01-07 10:49:51 at java.util.zip.ZipFile.open(Native Method)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:215)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:145)
2016-01-07 10:49:51 at java.util.zip.ZipFile.<init>(ZipFile.java:159)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
2016-01-07 10:49:51 at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processOne(Main.java:672)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.run(Main.java:277)
2016-01-07 10:49:51 at com.android.dx.command.dexer.Main.main(Main.java:245)
2016-01-07 10:49:51 at com.android.dx.command.Main.main(Main.java:106)
2016-01-07 10:49:51 2 errors; aborting
2016-01-07 10:49:51 
2016-01-07 10:49:51 
2016-01-07 10:49:51 * Try:
2016-01-07 10:49:51 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
2016-01-07 10:49:51 :dexDebug FAILED
2016-01-07 10:49:51 
2016-01-07 10:49:51 BUILD FAILED


根据提示把

D:\Work\BeX5\tools\adt-sdk\build-tools\23.0.2\dx.bat

中的最后一行改为

call "%java_exe%" %javaOpts% -Dfile.encoding=UTF-8 -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%

增加了-Dfile.encoding=UTF-8 这个强制指定字符集,本质原因是中间文件dex\debug\inputList.txt是utf-8格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wisheen

希望我的文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值