Android 项目未解析任何静态资产

Android project is not resolving any static assets

出于某种原因,我的 android 项目没有解析任何指向 js / css / images 的静态路径,但它在网络和 ios 上运行良好。我没有使用离子,所以也许我遗漏了一些特定的东西?但是,所有这些文件都可以在 android 项目中找到。

这是一张突出显示此问题的图片,您可以看到 android 应用程序看起来完全损坏并且仅显示 base64 编码的图片。它没有应用任何样式,没有任何 js 正在工作,它只是显示一些预渲染的 html。

箭头突出显示所有这些文件确实被请求并且位于 android 文件夹中

这真的是Android "feature".

默认情况下,它不会将以 _ 开头的资产文件夹复制到生成的 apk(参见 https://android.googlesource.com/platform/frameworks/base/+/b41af58f49d371cedf041443d20a1893f7f6c840/tools/aapt/AaptAssets.cpp#60)。

您可以通过添加带有要忽略的模式的自定义 aaptOptions 来解决它,删除 _* 以便它们被复制。像这样:

aaptOptions {
    ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~'
}

它应该放在应用程序的 build.gradle 里面 android -> defaultConfig

android {
    ...
    defaultConfig {
        ...
        aaptOptions {
            ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~'
        }
    }
}