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下载地址,切换你喜欢使用的国内镜像站点即可。
首先设置这个位置的显示方式为“project”
然后找到gradle-wrapper.properties文件,文件路径:
D:\Workspace\Android-SDK@4.23.82121 20240704\HBuilder Integrate AS\gradle\wrapper\gradle-wrapper.properties
修改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
未完待续!!!
如果以后还遇到新的问题,我会再此帖继续跟进!!!请大家收藏持续关注本文!!!
参考文献:
1、基于Uni-app前端框架的SUMER UI3.0组件库
2、uniapp精仿支付宝UI界面源码下载,基于SumerUI一款仿支付宝APP
3、uniapp精仿微信源码,基于SumerUI一款仿微信APP应用
SUMER UI
【用于开发APP
、小程序
、H5网站
、毕业设计
…】
评论