在 apk 中包含文件
Posted
技术标签:
【中文标题】在 apk 中包含文件【英文标题】:Include files in apk 【发布时间】:2016-11-26 01:46:17 【问题描述】:我有一些目录需要包含在 apk 的根目录中(不,我不能将它们放在 assets 或 res/raw 文件夹中)。如何将它们包含在 apk 构建中?
我的build.gradle:
buildscript
repositories
mavenCentral()
dependencies
classpath 'com.android.tools.build:gradle:2.1.0'
apply plugin: 'android'
android
compileSdkVersion 'android-23'
buildToolsVersion '24'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
buildTypes
release
minifyEnabled false
proguardFile getDefaultProguardFile('proguard-android.txt')
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
【问题讨论】:
“不,我不能将它们放在资产或 res/raw 文件夹中”。但是你也不能在运行时访问它们。 【参考方案1】:这是实现此目的的另一种方法:
在您的“app/src/main”目录中 创建一个“资源”目录。然后在资源目录中添加您要创建的目录结构。您需要知道一个技巧,您必须添加一个虚拟文件和每个结束目录。它可以是一个长度为 0 的文件。如果您不添加该虚拟文件,则不会创建无关目录。您指定的目录结构将在 apk 的根目录中构建。 (即“资源”目录不会是路径名的一部分)
注释:注意 apk 安装在只有读取权限的目录中。您将无法将任何内容添加到您创建的目录结构中。通常,我描述的技术用于存储不会更改的数据,例如“default.properties”文件。使用它的类加载器的 getResource 方法访问内容。
【讨论】:
【参考方案2】:你可以像这样添加你的目录
include ':directory1'
project(':directory').projectDir = new File(settingsDir, '../Project B/Directory 1')
更多信息请参考this
【讨论】:
以上是关于在 apk 中包含文件的主要内容,如果未能解决你的问题,请参考以下文章