gpt4 book ai didi

gradle - Gradle离线版本不适用于Mac 10.9.3

转载 作者:行者123 更新时间:2023-12-03 04:43:02 25 4
gpt4 key购买 nike

我想在没有互联网连接的情况下使用我的android studio 6.0,为此,我设置了以下选项:

Preferences > Gradle > Offline work



但我仍然收到消息:

Gradle project sync failed. Basic functionality (e.g. editing, debugging) will not work properly



当我尝试编译时,出现错误:

Error running app: Gradle project sync failed. Please fix your project and try again.



有人可以帮我还是遇到同样的问题?

谢谢

最佳答案

虽然我不知道确切的问题是什么,但我可以建议一种解决方法。

更改build.gradle以此开始:

buildscript {
repositories {
if ('allow' == System.properties['build.network_access']) {
mavenCentral()
} else {
maven {
url 'dependencies'
}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.0-beta2'
}
}

apply plugin: 'com.android.application'

因此,定义了 build.network_access=allow gradle系统属性后,将使用在线 mavenCentral()存储库。否则,构建将使用 dependencies文件夹中的本地脱机Maven存储库。

现在的技巧是生成该本地脱机Maven存储库。为此,我使用此脚本( fetch_dependencies.py):

#!/usr/bin/python

import sys
import os
import subprocess
import glob
import shutil

# Place this in build.gradle:
# repositories {
# if ('allow' == System.properties['build.network_access']) {
# mavenCentral()
# } else {
# maven { url 'dependencies' }
# }
# }
def main(argv):
project_dir = os.path.dirname(os.path.realpath(__file__))
repo_dir = os.path.join(project_dir, "dependencies")
temp_home = os.path.join(project_dir, ".gradle_home")
if not os.path.isdir(temp_home):
os.makedirs(temp_home)
subprocess.call(["gradle", "-g", temp_home, "-Dbuild.network_access=allow"])
cache_files = os.path.join(temp_home, "caches/modules-*/files-*")
for cache_dir in glob.glob(cache_files):
for cache_group_id in os.listdir(cache_dir):
cache_group_dir = os.path.join(cache_dir, cache_group_id)
repo_group_dir = os.path.join(repo_dir, cache_group_id.replace('.', '/'))
for cache_artifact_id in os.listdir(cache_group_dir):
cache_artifact_dir = os.path.join(cache_group_dir, cache_artifact_id)
repo_artifact_dir = os.path.join(repo_group_dir, cache_artifact_id)
for cache_version_id in os.listdir(cache_artifact_dir):
cache_version_dir = os.path.join(cache_artifact_dir, cache_version_id)
repo_version_dir = os.path.join(repo_artifact_dir, cache_version_id)
if not os.path.isdir(repo_version_dir):
os.makedirs(repo_version_dir)
cache_items = os.path.join(cache_version_dir, "*/*")
for cache_item in glob.glob(cache_items):
cache_item_name = os.path.basename(cache_item)
repo_item_path = os.path.join(repo_version_dir, cache_item_name)
print "%s:%s:%s (%s)" % (cache_group_id, cache_artifact_id, cache_version_id, cache_item_name)
shutil.copyfile(cache_item, repo_item_path)
shutil.rmtree(temp_home)
return 0

if __name__ == "__main__":
sys.exit(main(sys.argv))

它将以在线模式运行构建以下载所有依赖项。之后,它将jar和poms复制到 dependencies文件夹中,在此处创建本地Maven存储库。您甚至可以将此 dependencies文件夹推送到源代码管理中。

之后,您可以使用 gradle --offline build(或仅 gradle build)或Android Studio进行离线构建。

关于gradle - Gradle离线版本不适用于Mac 10.9.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396401/

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