Android 混淆提示 java.io.FileNotFoundException: ...\proguard-rules\release\aapt_rules.txt (系统找不到指定的路径)

这个问题花了一些时间,在这里记录下来,首先先来说说Android的混淆。


混淆配置文件由三部分组成:(此段转载自:http://blog.csdn.net/thm521888/article/details/53905928

1.默认配置

   getDefaultProguardFile('proguard-android.txt')  或者 getDefaultProguardFile('proguard-android-optimize.txt')
   该文件路径:
a.新版本:Starting with version 2.2 of the Android plugin for Gradle
路径:
/home/mth/code/github_demo/A/build/intermediates/proguard-files/proguard-android.txt-2.2.3
b.旧版本
路径:
/home/mth/Android/Sdk/tools/proguard/proguard-android.txt

2.自定义混淆文件

proguard-rules.pro 这个简单

3.特别注意(这个默认文件很坑)

路径:
./app/build/intermediates/proguard-rules/release/aapt_rules.txt
据说该文件是在初始化ProcessAndroidResources时候生成的


至于具体的文件混淆规则这里不说了,网上一堆,接下来就是混淆中遇到的一个问题:

Android studio混淆打包的时候一直失败,提示Warning:Exception while processing task Java.io.FileNotFoundException: D:\...\app\build\intermediates\proguard-rules\release\aapt_rules.txt (系统找不到指定的路径。)

即有一个混淆的文件找不到了,但是这个文件是系统生成的,那怎么办,我们只需要在菜单栏选择build --> Clean Project ,然后在build --> Make Project即可,然后就能在这个路径下找到这个aapt_rules.txt文件了,再次build apk就不会报错了哦(注意:混淆的是release)


最后科普一下build菜单下的这些功能的区别:

1.Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。

2.Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。

3.Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。

4.Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project是一致的,这个不知道Google搞什么鬼~~

5.Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。

6.Generate Signed APK:生成有签名的apk。

相关的混淆解析可以参考该文章:

http://www.jianshu.com/p/0202845db617

http://blog.csdn.net/lovexjyong/article/details/24652085

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这是一个Java程序运行时报错,报错内容是“java.io.filenotfoundexception: score.txt系统不到指定文件)”。意思是程序无法到名为“score.txt”的文件。可能是文件名拼写错误、文件不存在或文件路径错误等问题导致的。 ### 回答2: Java.io.filenotfoundexception: score.txt (系统不到指定文件。)是一个常见的错误信息,它表示在运行一个Java程序时,文件系统无法指定文件score.txt。这个错误可能由若干原因引起,下面我们来分别讨论。 首先,可能是指定文件路径不正确。Java程序在读取文件时,必须指定正确的路径才能文件。如果路径有误,程序就会无法文件,因此会出现Java.io.filenotfoundexception错误。解决这个问题的方法是检查文件路径是否正确,特别是要确保路径没有错别字或多余符号。 其次,文件score.txt可能不存在。如果文件确实不存在,Java运行时就会抛出Java.io.filenotfoundexception错误。在这种情况下,要么手动在文件系统创建该文件,要么在代码添加相应的逻辑以在程序运行时自动创建该文件。特别是在开发阶段,经常会出现文件还不存在的情况,因此要对文件的存在性进行充分检查。 第三,可能是文件权限问题。如果对score.txt文件没有足够的读取权限,Java也无法读取该文件,从而产生Java.io.filenotfoundexception错误。此时需要检查文件权限,并修改权限为可读取。 综上所述,Java.io.filenotfoundexception: score.txt (系统不到指定文件。)可能有多个原因导致,开发者需要对代码、文件路径以及权限等方面进行仔细检查,才能解决这个问题。在实际开发,还可以加入更多的异常处理机制,以避免由于文件问题引发的程序崩溃或不稳定。 ### 回答3: JavaFileNotFoundException是一种运行时异常。它表示在尝试读取、写入或访问文件时,系统不到指定文件或目录。该异常的常见原因可能包括: 1.文件不存在或无法访问 2.文件路径错误或文件名拼写错误 3.文件正在被其他程序占用,无法被访问或修改 4.权限不足,无法访问或修改文件 当程序在Java IO试图访问一个文件并且文件不存在,FileNotFoundException将被抛出。这可能是由于文件路径错误、文件已被删除、磁盘不存在或文件没有读/写权限等原因导致的。 为了避免这种异常,可以在使用文件之前先检查文件是否存在。如果文件不存在,可以使用try-catch块来处理FileNotFoundException异常。在抛出文件不存在的异常时,需要提供有用的信息和建议解决方案,如要求用户提供正确的文件路径或检查文件的权限。 代码示例如下: File file = new File("score.txt"); try { FileInputStream fis = new FileInputStream(file); // 进行文件操作 fis.close(); } catch (FileNotFoundException e) { System.out.println("文件不存在,请检查文件路径是否正确!"); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 以上代码将尝试访问名为score.txt文件,如果该文件不存在,FileNotFoundException将被抛出。在catch块打印错误信息并打印栈跟踪以便进行调试。 综上所述,FileNotFoundExceptionJava的常见异常,通常由文件不存在、路径错误或其他文件访问问题导致。了解并避免这些问题,可以编写更健壮的程序,提高程序的可靠性和可维护性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值