如何解决在资产文件夹中自动省略以“_”(下划线)开头的文件/文件夹

Posted

技术标签:

【中文标题】如何解决在资产文件夹中自动省略以“_”(下划线)开头的文件/文件夹【英文标题】:How to workaround autoomitting fiiles/folders starting with "_" (underscore) in assets folder 【发布时间】:2012-02-09 06:01:00 【问题描述】:

我想在 eclipse 提供的 android 模拟器上部署 PhoneGap 应用。我决定使用严重依赖“_”约定的Dojo Toolkit(以“_”开头的文件/文件夹意味着这是一个私有/内部模块)。

基本上问题在于,在部署应用程序时,每个以“_”开头的文件/文件夹都被省略了。这完全把事情搞砸了,Dojo 工具包正如预期的那样无法工作。

有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:
aaptOptions
    ignoreAssetsPattern  '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~'

在 android 应用程序的 android 块内的应用程序 build.gradle 文件中添加上述行

【讨论】:

【参考方案2】:

首先给issue 加注星标,以便 Google 最终修复该错误。如果您在 Mac 或 Linux 上运行,则有一个修补过的 aapt 可修复错误 here。除此之外,您唯一的选择是做一个 Dojo 的build,以便它只在一个文件中。

【讨论】:

我对此表示反对,因为解决错误修复问题的唯一部分是链接断开。答案应包括其他答案中所述的解决方案,仅在 gradle 文件中的几行。【参考方案3】:

根据上一个答案,我结束了对位于项目根目录的ant.properties 的更改:

aapt.ignore.assets=!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~

在这里,我覆盖了在 sdk-android 目录上定义的 aapt.ignore.assets 属性。有效

【讨论】:

【参考方案4】:

适用于所有 Dojo 开发人员,或任何对此有疑问的人。

在 Android Studio 中为我解决的问题是打开 build.gradle,然后添加到 android 块:

android 
    compileSdkVersion 26

    ...

    aaptOptions 
        ignoreAssetsPattern '!._'
    

【讨论】:

请注意,compileSdkVersion 根本不重要。这似乎会影响 Android 4.4+【参考方案5】:

解决方法是使用 CDN 中的 dojo.js

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.0/dojo/dojo.js"></script>

另外,我开始寻找一个缩小应用程序或服务,它可以从所有必需的 dojo 文件创建一个文件,但没有轻易找到。

【讨论】:

我知道这是旧的,但是 - Dojo 有自己的构建系统,请参阅 dojotoolkit.org/documentation/tutorials/1.10/build .. 例如这篇文章community.phonegap.com/nitobi/topics/… 显示了构建配置文件和构建命令行的示例。我还没有测试他们在那里说的内容,但想法与此处相同,在构建期间将通常位于以下划线开头的文件夹中的所有 Dojo 文件放入一个大的 .js 文件中,这样你的 android 应用程序就不会需要再引用文件夹(并且您的 apk 会更小)。

以上是关于如何解决在资产文件夹中自动省略以“_”(下划线)开头的文件/文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在结构中省略参数名称

数据库版本管理工具Flyway——基础篇

获取资产文件夹的完整路径

如何在org-mode中用括号中的单词加下划线以导出到LaTeX

Jmeter高级编程

如何使用 Parcel 将资产与应用程序的其余部分分开构建