【问题标题】:Include files in apk在 apk 中包含文件
【发布时间】:2016-11-26 01:46:17
【问题描述】:

我有一些目录需要包含在 apk 的根目录中(不,我不能将它们放在 assetsres/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 文件夹中”。但是你也不能在运行时访问它们。

标签: android gradle apk


【解决方案1】:

这是实现此目的的另一种方法:

在您的“app/src/main”目录中 创建一个“资源”目录。然后在资源目录中添加您要创建的目录结构。您需要知道一个技巧,您必须添加一个虚拟文件和每个结束目录。它可以是一个长度为 0 的文件。如果您不添加该虚拟文件,则不会创建无关目录。您指定的目录结构将在 apk 的根目录中构建。 (即“资源”目录不会是路径名的一部分)

注释:注意 apk 安装在只有读取权限的目录中。您将无法将任何内容添加到您创建的目录结构中。通常,我描述的技术用于存储不会更改的数据,例如“default.properties”文件。使用它的类加载器的 getResource 方法访问内容。

【讨论】:

    【解决方案2】:

    你可以像这样添加你的目录

    include ':directory1'
    project(':directory').projectDir = new File(settingsDir, '../Project B/Directory 1')
    

    更多信息请参考this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      相关资源
      最近更新 更多