Unity2020Gradle离线环境搭建备忘录
目录
.访问https://mvnrepository.com/ 缺啥下啥
2.java.lang.NoClassDefFoundError: com/android/build/gradle/internal/ToolingRegistryProvider
1.重要地址一览
https://developer.android.google.cn/studio
https://developer.android.google.cn/studio/intro/studio-config#offline
2.具体步骤:
1.下载Android SDK和NDK
2.下载Android Gradle Plugin
3.配置离线编译依赖项
https://developer.android.google.cn/studio/intro/studio-config#offline
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
要不会报一些莫名奇妙的异常,不好排查
ex:java.lang.NoClassDefFoundError: com/android/build/gradle/internal/ToolingRegistryProvider
搬运官方文档:
配置离线编译依赖项
如果您想在没有网络连接的情况下编译项目,请按照以下步骤配置 Android Studio,以使用 Android Gradle 插件和 Google Maven 依赖项的离线版本。
如果您尚未下载的话,请从下载页面下载离线组件。
下载并解压缩离线组件
下载离线组件后,将其内容解压缩到以下目录中,如果该目录尚不存在,您可能需要创建该目录:
- 在 Windows 上:
%USER_HOME%/.android/manual-offline-m2/
- 在 macOS 和 Linux 上:
~/.android/manual-offline-m2/
要更新离线组件,请按以下步骤操作:
- 删除
manual-offline-m2/
目录中的内容。 - 重新下载离线组件。
- 将所下载的 ZIP 文件的内容解压缩到
manual-offline-m2/
目录中。
在 Gradle 项目中添加离线组件
要告知 Android 编译系统使用您已下载并解压缩的离线组件,您需要创建一个脚本(如下所述)。请注意,即使在更新离线组件之后,您也只需创建并保存此脚本一次。
-
使用以下路径和文件名创建一个空文本文件:
- 在 Windows 上:
%USER_HOME%/.gradle/init.d/offline.gradle
- 在 macOS 和 Linux 上:
~/.gradle/init.d/offline.gradle
- 在 Windows 上:
-
打开该文本文件并添加以下脚本:
def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2") def repos = new ArrayList() reposDir.eachDir {repos.add(it) } repos.sort() allprojects { buildscript { repositories { for (repo in repos) { maven { name = "injected_offline_${repo.name}" url = repo.toURI().toURL() } } } } repositories { for (repo in repos) { maven { name = "injected_offline_${repo.name}" url = repo.toURI().toURL() } } } }
-
保存该文本文件。
-
(可选)如果您想要验证离线组件是否运行正常,请从项目的
build.gradle
文件中移除在线代码库(如下所示)。在确认项目不使用这些代码库也能正确编译之后,您可以将它们放回到build.gradle
文件中。buildscript { repositories { // Hide these repositories to test your build against // the offline components. You can include them again after // you've confirmed that your project builds ‘offline’. // google() // jcenter() } ... } allprojects { repositories { // google() // jcenter() } ... }
4.Unity Gradle打apk
File->Build Settings,切换到Android平台,Build System选Gradle。点击Player Settings,设置Publishing Settings相关内容。
勾选Custom Gradle Template之后,Unity会生成一个mainTemplate.gradle放在下面的路径。
编辑它:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
repositories {
//注释掉这些
//mavenCentral()
//google()
//jcenter()
//内网有仓库的可以配置,下载一些依赖的jar包,
//maven{url 'http://172.16.200.187:8081/repository/maven-central'}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
**BUILD_SCRIPT_DEPS**}
}
allprojects {
repositories {
//mavenCentral()
//google()
//jcenter()
//maven{url 'http://172.16.200.187:8081/repository/maven-central'}
flatDir {
dirs 'libs'
}
}
}
3.疑难问题以及如何解决:
1.Could not find xxx.jar
ex:Could not find pl.droidsonroids.gifandroid-gif-drawable
.访问https://mvnrepository.com/ 缺啥下啥
.内网离线maven仓库的创建
找台机器内网访问外网maven-central
可以下载一些引用的jar包
2.java.lang.NoClassDefFoundError: com/android/build/gradle/internal/ToolingRegistryProvider
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
特别注意:offline-gmaven-stable.zip 解压到当前文件夹%USER_HOME%/.android/manual-offline-m2/下
要不会报一些莫名奇妙的异常,不好排查
ex:java.lang.NoClassDefFoundError: com/android/build/gradle/internal/ToolingRegistryProvider
本文地址:https://blog.csdn.net/osuckseed/article/details/110177294
上一篇: APP启动流程总结分析
下一篇: ES6 学习 字符串的扩展方法