gpt4 book ai didi

android - 创建预构建事件以将文件复制到 Android 应用程序中的 Assets 文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:49 25 4
gpt4 key购买 nike

我有这个项目结构:项目文件夹/IosFolder、AndroidFolder、CommonFolder现在 android 应用程序使用它的 Assets 文件夹中的文件。但是我们决定为相同的文件创建 Common 文件夹。

你能帮我做一个函数吗,女巫会将文件从 Common 文件夹(这个文件夹在我的项目下,所以在 Android Studio 中我看不到它)复制到 android assets 构建应用程序之前的文件夹?

在Common文件夹中会有一些.json文件和字体文件。

据我所知,我需要在我的 build.gradle 文件中编写这个函数类似的东西:

task copyFiles(type: Copy)

copyFiles {
description = 'Copy files'
from 'Common/'
into 'Android/{projectName}/app/src/main/assets'
}

这是我的文件:

apply plugin: 'com.android.application'

repositories {
mavenCentral()
}

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "amc.amc_mobile_promo2"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
//For Flurry
multiDexEnabled = true
}
//For Flurry
/*compileOptions {
//noinspection GroovyAssignabilityCheck
sourceCompatibility JavaVersion.VERSION_1_7
//noinspection GroovyAssignabilityCheck
targetCompatibility JavaVersion.VERSION_1_7
}*/
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'

compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'joda-time:joda-time:2.8.2'
compile 'com.github.orangegangsters:swipy:1.2.0@aar'

compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.6.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.6.0'

/*compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'*/
}

你能告诉我在 Gradle 控制台中哪里可以看到执行方法的结果吗?

我需要使用什么路径以及在 build.gradle 文件中的什么位置放置此方法?

希望你能帮助我。

最佳答案

你能试试这个配置吗:

gradle.projectsEvaluated {
preBuild.dependsOn(copyFiles)
}

更新:复制任务可以为您执行许多命令。这里的文档是示例:

task anotherCopyTask(type: Copy) {
// Copy everything under src/main/webapp
from 'src/main/webapp'
// Copy a single file
from 'src/staging/index.html'
// Copy the output of a task
from copyTask
// Copy the output of a task using Task outputs explicitly.
from copyTaskWithPatterns.outputs
// Copy the contents of a Zip file
from zipTree('src/main/assets.zip')
// Determine the destination directory later
into { getDestDir() }

如果您只想从一个源目录复制到另一个源目录,您可以这样做:

task copyFiles(type: Copy) {
from 'pathToMyAssets'
into 'AndroidStudioAssetsFolderPath'
}

更新在您应用程序的最底部的 build.gradle 中执行此操作:

task copyFiles(type: Copy) {
from 'Users/kostya/repo_amc_mobile_promo/Common/'
into 'Users/kostya/repo_amc_mobile_promo/Android/AMC_Mobile_Promo2/app/src/main/assets'
}

preBuild.dependsOn(copyFiles)

关于android - 创建预构建事件以将文件复制到 Android 应用程序中的 Assets 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com