• 关于最近开发中遇到的问题汇总(一)


    最近软工实践的行进中都是队友在写博客,个人博客发的少了……于是把最近个人开发中遇到的问题进行了一些汇总

    新增资源无法通过编译

    • Android Studio提示以下信息

    Error:Execution failed for task ':app:mergeDebugResources'. > Crunching Cruncher scrollbar_thumb.9.png failed, see logs

    • 解决方法
      在build.gradle中添加如下字段

    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false

    • 原理
      appt即:Android Asset Packaging Tool

    在SDK的build-tools目录下。该工具可以查看,创建, 更新ZIP格式的文档附件(zip, jar, apk)。也可将资源文件编译成二进制文件,尽管你可能没有直接使用过aapt工具,但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序。也就是上面我们说的两项配置。

    aapt工具也支持很多子命令。
    aapt l[ist]:列出资源压缩包里的内容。
    aapt d[ump]:查看APK包内指定的内容。
    aapt p[ackage]:打包生成资源压缩包。
    aapt r[emove]:从压缩包中删除指定文件。
    aapt a[dd]:向压缩包中添加指定文件。
    aapt v[ersion]:打印aapt的版本。

    示例:

    aapt -A <附件资源路径> -S <资源路径> -M <Android应用清单文件> -I <额外添加的包> And -F 目标文件路径

    出现以上情况可能是因为aapt被关闭,无法生成R.java中的索引造成的


    • 下面小记一下aapt的用法

    1.aapt l[ist] [-v] [-a] file.{zip,jar,apk}

    List contents of Zip-compatible archive.

    1.1列出压缩文件目录

    aapt l <file_path.apk>
    参数:
    -v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。
    其中Method表示压缩形式,有:Deflate及Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;可以看出resources.arsc、*.png采用压缩模式,而其它采用压缩模式。
    Ratio表示压缩率。CRC-32未明其意,Sodino盼指教。
    -a:会详细输出所有目录的内容。

    2.aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]

    badging Print the label and icon for the app declared in APK.
    permissions Print the permissions from the APK.
    resources Print the resource table from the APK.
    configurations Print the configurations in the APK.
    xmltree Print the compiled xmls in the given assets.
    xmlstrings Print the strings of the given compiled xml assets.

    3.1使用aapt生成R.Java

    rem 测试的工程目录下必须得有gen文件夹,否则会提示:Unable to open class file R.java:No such file or directory

    %aapt% package -f -m -J %GEN% -S %RES% -I %ANDROID_JAR% -M %ANDROID_MANIFEST_XML%

    3.2使用aapt生成资源包文件
    %aapt% package -f -M %ANDROID_MANIFEST_XML% -S %RES% -A %ASSETS% -I %ANDROID_JAR% -F %RESOURCE%

    %GEN%:存放的R.java文件夹路径。
    %RES%:res文件夹路径。
    %ANDROID_JAR%:引用的Android.jar路径。
    %ANDROID_MANIFEST_XML%:工程AndroidManifest.xml绝对路径。
    %ASSETS%:asset文件夹路径。
    %RESOURCE%:生成的resouces.arsc存放路径。

    以上用法来自:http://blog.csdn.net/g19920917/article/details/20244937


    • 再谈谈aapt
      用于设置AAPT的属性

    failOnMissingConfigEntry: Forces aapt to return an error if it fails to find an entry for a configuration.
    ignoreAssets: Pattern describing assets to be ignore.
    noCompress: Extensions of files that will not be stored compressed in the APK.
    useNewCruncher: Whether to use the new cruncher.


    关于Gradle的配置文件用法:http://www.jianshu.com/p/7e3a69dbd20e


  • 相关阅读:
    [强网杯青少年专项赛] 惨惨战队WriteUp
    [BUUOJ记录] [HCTF 2018]WarmUp
    [WUST-CTF]Web WriteUp
    PHP check 的一些绕过技术
    [易霖博YCTF]Web WriteUp
    Java backup
    Common Knowledge
    一篇帖子教会你如何获取网盘数据
    python爬虫如何爬知乎的话题?
    浏览器的复制到剪切板功能,兼容所有浏览器,悬浮层不能复制问题解决
  • 原文地址:https://www.cnblogs.com/csming1995/p/6159290.html
Copyright © 2020-2023  润新知