欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Unity2020Gradle离线环境搭建备忘录

程序员文章站 2022-03-09 07:57:06
1.重要地址一览https://developer.android.google.cn/studiohttps://developer.android.google.cn/studio/intro/studio-config#offlinehttps://mvnrepository.com/2.具体步骤:1.下载Android SDK和NDK2.下载Android Gradle Plugin3.配置离线编译依赖项https://developer.android.g....

目录

1.重要地址一览

2.具体步骤:

1.下载Android SDK和NDK

2.下载Android Gradle Plugin

3.配置离线编译依赖项

配置离线编译依赖项

下载并解压缩离线组件

在 Gradle 项目中添加离线组件

4.Unity Gradle打apk

3.疑难问题以及如何解决:

1.Could not find xxx.jar

.访问https://mvnrepository.com/ 缺啥下啥

.内网离线maven仓库的创建

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

https://mvnrepository.com/

2.具体步骤:

1.下载Android SDK和NDK

 

2.下载Android Gradle Plugin

Unity2020Gradle离线环境搭建备忘录

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/

要更新离线组件,请按以下步骤操作:

  1. 删除 manual-offline-m2/ 目录中的内容。
  2. 重新下载离线组件
  3. 将所下载的 ZIP 文件的内容解压缩到 manual-offline-m2/ 目录中。

在 Gradle 项目中添加离线组件

要告知 Android 编译系统使用您已下载并解压缩的离线组件,您需要创建一个脚本(如下所述)。请注意,即使在更新离线组件之后,您也只需创建并保存此脚本一次。

  1. 使用以下路径和文件名创建一个空文本文件:
    • 在 Windows 上:%USER_HOME%/.gradle/init.d/offline.gradle
    • 在 macOS 和 Linux 上:~/.gradle/init.d/offline.gradle
  2. 打开该文本文件并添加以下脚本:

     

    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()
              }
            }
          }
        }
        
  3. 保存该文本文件。

  4. (可选)如果您想要验证离线组件是否运行正常,请从项目的 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