uniapp本地打包之Android APP基座android studio我常遇见的几个问题总结

作品, 技术, 问答  ·  2024-11-30

uniapp本地打包之Android APP基座android studio我常遇见的几个问题总结

Uniapp是最近几年最火的APP开发平台,支持一端开发多终端输出,本文主要是收集了最近使用Android studio本地打包遇到的一些问题以及解决方案的总结。

在这里插入图片描述


首先,Uniapp平台有自己的Android本地打包指南,看本文之前,请先了解一下官方提供的指南,会帮助你更理解本文。官方打包指南传送门>>

还有网友提供的打包步骤传送门,看完之后再回来看我这篇文章就简单多了

首先展示我使用的软件版本: |软件名称|版本信息  | |--|--| | Android-Studio | Android Studio Koala  2024.1.1 Patch 1  Build #AI-241.18034.62.2411.12071903, built on July 11, 2024 | | Gradle | 7.3.3 | | Jdk | jbr-17 (JetBrains Runtime 17.0.11)| | Kotlin| 1.9 |

切记:gradle版本与jdk版本一定要匹配,不然问题很多,以下是JDK与最低Gradle版本号的对应关系:(最新版本可自行百度)在这里插入图片描述

-------------------

以下是我整理的一些问题及解决文案:

问题一:Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-7.3.3-bin.zip Reason: java.net.SocketTimeoutException: Connect timed out

问题描述:这个问题翻译过来就知道是什么回事了,time out就是读取Gradle资源的时候超时了,其实就是gradle资源被大中华局域网墙了,毕竟android studio这个东西是老美的平台,谷歌几乎所有产品在中国大陆都是无法访问的,因此你的网络无法获取Gradle包也是很正常的。

解决方案:为了解决Gradle下载过慢或超时的问题,我们可以利用国内优秀的镜像站点来加速下载。以下是一些国内镜像站点提供的Gradle下载地址: | 平台 | 镜像地址 | |--|--| | gradle官网地址 | https://services.gradle.org/distributions/ | |腾讯云Gradle镜像| https://mirrors.cloud.tencent.com/gradle/ | |阿里云Gradle镜像1|https://mirrors.aliyun.com/macports/distfiles/gradle/ | |阿里云Gradle镜像2|https://mirrors.aliyun.com/gradle/ |

借助这些国内的镜像站点,我们能够以更快的速度获取到 Gradle 的安装包。如此一来,便可以有效避免因官方下载地址而产生的下载速度缓慢的问题,进而极大地提高我们的开发效率。

镜像配置方法:

第一步:替换官方的Gradle下载地址,切换你喜欢使用的国内镜像站点即可。

  1. 首先设置这个位置的显示方式为“project”

在这里插入图片描述

  1. 然后找到gradle-wrapper.properties文件,文件路径:

D:\Workspace\Android-SDK@4.23.82121 20240704\HBuilder Integrate  AS\gradle\wrapper\gradle-wrapper.properties

在这里插入图片描述

  1. 修改gradle-wrapper.properties文件里的镜像地址:


#Tue Jul 16 11:18:11 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

其中:distributionUrl 就是你要替换的镜像源,将原来的https://services.gradle.org/distributions/,替换成阿里云的或者腾讯云的在这里插入图片描述

第二步:清理一下缓存(方法:**File -> Invalidate Caches/Restart** 来清除缓存)

第三步:重启Android Studio

即可,搞定!!!如果还不行,我也没办法了,请自行百度! 即可,搞定!!!如果还不行,我也没办法了,请自行百度! 即可,搞定!!!如果还不行,我也没办法了,请自行百度!

问题一的解决方案用到的参考文献:1、gradle 的安装与配置 、gradle和jdk版本对应关系2、解决Android Studio不能下载Gradle的教程3、解决Gradle下载过慢问题的有效方式:使用国内镜像站点4、android studio 安卓gradle项目

问题二:Caused by: java.lang.NoClassDefFoundError: org/gradle/internal/impldep/com/google/common/collect/Lists

问题描述:这个错误是由于缺少相关的类文件导致的。通常情况下,这个错误可以通过以下几种方式来解决:. 检查依赖:首先,你需要检查你的项目依赖是否正确配置。

解决方案:


删除“C:\Users\admin\.gradle”这个目录,退出Android studio重新打开!!!

删除“C:\Users\admin\.gradle”这个目录,退出Android studio重新打开!!!

删除“C:\Users\admin\.gradle”这个目录,退出Android studio重新打开!!!

重要问题说三遍!!!

删掉这个目录后,重新打开android studio,重新build一下,最好在Build之前先清理一下缓存(方法:File -> Invalidate Caches/Restart 来清除缓存) ———————————————— 还有其他方法,请点击这里

问题二 用到的文案参考文献列表:1、NoClassDefFoundError: org/gradle/internal/impldep/com/google/common/collect/Lists2、Unable to load class 'org.gradle.internal.impldep.com.google.common.collect.Lists'

问题三:Android studio出现Task 'prepareKotlinBuildScriptModel' not found in project ':simpleDemo'。错误

问题描述:Gradle的某些版本中可能存在该问题,怀疑与Kotlin插件有关,可选择升级kotlin插件版本来解决,但是往往不是那么简单,升级kotlin也不一定能解决,而且还容易引发其他问题,所以不到万不得已,千万别轻易升级插件。

解决方案:其实就是项目里build.gradle文件缺少了prepareKotlinBuildScriptModel的定义,我们只需要在build.gradle文件,定义一个prepareKotlinBuildScriptModel即可。

注意,通常一个项目里有两个bundle.gradle文件,别搞混了!

第一步: 我们先找到build.gradle文件,文件路径:D: Workspace\Android-SDK@4.23.82121 20240704\HBuilder Inteqrate AS\simpleDemo\build.gradle

然后在文件最下面,添加以下代码:


task prepareKotlinBuildScriptModel {
}

或者


tasks.register("prepareKotlinBuildScriptModel"){
}

第二步: 清理缓存,重新build工程

问题三 用到的文案参考文献列表:1、Gradle多模块开发框架搭建2、最近Android应用开发中碰到的几个问题

问题四:Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin 'com.android.internal.application'.

问题描述:这个异常的根本原因是您的Android项目路径中包含非ASCII字符。在Windows系统中,Gradle在构建过程中需要处理文件路径,而非ASCII字符可能会导致Gradle无法正确处理这些路径,进而导致构建失败。因此,Gradle会在检测到这种情况时抛出异常,以防止构建过程中出现更严重的问题。

需要注意的是,虽然在某些情况下可以通过忽略此警告来继续构建项目,但这并不是一个推荐的长期解决方案,因为非ASCII字符可能引发其他潜在的兼容性问题。

解决方法:要解决这个问题,您可以采取以下两种主要方法:

方法一:移动项目到不包含非ASCII字符的路径 最直接的解决方案是将Android项目移动到一个路径中不包含非ASCII字符的目录下。这样可以避免构建过程中由于非ASCII字符导致的各种问题。以下是详细步骤:

找到当前项目的根目录:通过文件管理器定位到项目的根目录。

将项目文件夹复制到新的路径:选择一个不包含非ASCII字符的路径,将项目文件夹复制或移动到该路径下。例如,您可以将项目移动到C:\Projects\MyAndroidApp,而不是C:\用户\我的项目\MyAndroidApp。

重新打开项目:在Android Studio中,从新的路径重新打开项目。

重新构建项目:在新路径下,重新构建项目,确保问题已经解决。

方法二:使用 ‘android.overridePathCheck’ 属性 如果您无法或不想移动项目到新的路径,也可以通过修改Gradle的配置来临时解决这个问题。具体做法是让Gradle忽略路径中的非ASCII字符。

步骤: 打开项目根目录:通过文件管理器定位到项目的根目录。

查找gradle.properties文件:在项目根目录下找到gradle.properties文件。如果项目中没有该文件,您可以手动创建一个。

在这里插入图片描述

gradle.properties文件中添加以下行:


android.overridePathCheck=true

这行配置将告诉Gradle忽略项目路径中的非ASCII字符,并允许您继续构建项目。请注意,这虽然解决了当前的问题,但可能会在其他环境中(特别是Windows平台上)引发其他潜在问题。在这里插入图片描述

保存并关闭文件:完成修改后,保存gradle.properties文件并关闭。

重新构建项目:返回Android Studio,点击Try Again或手动重新构建项目。

问题四 用到的文案参考文献列表:1、Caused by: org.gradle.api.internal.plugins.PluginApplicationException2、Android studio报错Caused by: org.gradle.api.internal.plugins

问题五:Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not “opens java.io” to unnamed module @5de92e13

问题描述: 在Android Studio中构建项目时遇到问题:Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not “opens java.io” to unnamed module @5de92e13

原因分析: 这个错误是因为在使用 Java 的反射 API 来访问或修改 java.io.File.path 这个私有字段,但是 Java 的模块系统阻止了这种访问。

解决方案: 在你的 gradle.properties 文件中,添加以下 JVM 参数:


org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED

如果还不行,那可以参考以下博文,应该能帮助到你:传送门

问题五 用到的文案参考文献列表:1、解决问题:Unable to make field private final java.lang.String java.io.File.path

未完待续!!!

如果以后还遇到新的问题,我会再此帖继续跟进!!!请大家收藏持续关注本文!!!


评论