uni-app x android
环境版本
macOS Monterey12.2 Intel
HBuilderX 4.23
Android Studio Koala | 2024.1.1 Patch 1
官网地址: https://doc.dcloud.net.cn/uni-app-x/
官网参考: https://doc.dcloud.net.cn/uni-app-x/native/use/android.html
1. java 环境切换(废弃)
安装不同版本
java
,具体步骤省略查看
bash_profile
cat ~/.bash_profile
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
export PATH="/Users/jasvtfvan/Documents/FullStack/flutter/bin:$PATH"
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_UUL=https://storage.flutter-io.cn
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator
export JMETER_HOME=/Users/jasvtfvan/Documents/PortableApplication/apache-jmeter-5.4
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
export MAVEN_HOME=/Users/jasvtfvan/Documents/PortableApplication/apache-maven-3.8.5
export PATH=$PATH:$MAVEN_HOME/bin
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
alias open_proxy='export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897'
alias close_proxy='unset http_proxy;unset https_proxy;unset all_proxy'
alias test_proxy='curl -v google.com'
.bash_profile
和.zshrc
相关权限说明,参考node/nvm
和go/gvm
- 查看
java
版本并切换至java8
可以不必切换到java8
java -version
jdk8
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
2. HBuilderX 创建项目
2.1 下载安装
官网地址: https://www.dcloud.io/hbuilderx.html
历史版本: https://hx.dcloud.net.cn/Tutorial/HistoryVersion
下载4.2.3
版本
2.2. 创建uni-app x
项目
绑定开发者账户后,自动生成Appid
,并在开发者中心可以查看
2.3. 生成打包资源
3. 开发者中心
官网地址: https://dev.dcloud.net.cn
3.1. 管理应用
分别点击: 应用管理 -> 我的应用 -> 应用名称
3.2. 创建云端证书
创建完成后,点击证书详情
-> 查看证书密码
-> 下载证书
3.3. 生成离线打包key
- 新增
- 创建
- 查看
4. 离线Android项目
4.1. 导入Android Studio
注意,下载的版本号需要跟
HBuilderX
版本号一致
- 导入项目,目录如下
- 修改
app
的sdk
版本
这里compileSdk
要切换到最高版本,然后Apply
所有Module
都需要参考app进行修改
4.2. 拷贝基础库包
将Android-SDK@4.23.82121_20240704/SDK/libs/
目录下的 和Android-uni-app-x-SDK@12048-4.24/SDK/libs/
目录下的
// android-gif-drawable-1.2.28.aar
app-common-release.aar
app-runtime-release.aar
// breakpad-build-release.aar
dcloud-layout-release.aar
framework-release.aar
uni-exit-release.aar
uni-getAccessibilityInfo-release.aar
uni-getAppAuthorizeSetting-release.aar
uni-getAppBaseInfo-release.aar
uni-getDeviceInfo-release.aar
uni-getSystemInfo-release.aar
uni-getSystemSetting-release.aar
uni-openAppAuthorizeSetting-release.aar
uni-prompt-release.aar
uni-storage-release.aar
uts-runtime-release.aar
uni-rpx2px-release.aar
uni-theme-release.aar
拷贝到app/libs/
目录下,删除utsplugin-release.aar
点击File -> Sync Project With Gradle Files
4.3. uniappx-test
工程配置
- 创建模块
分别点击: File -> New -> New Module... -> Android Library
选项信息
Module Name: uniappx-test
Package Name: com.example.uniappx_test
Language: Kotlin
Bytecode Level: 8
Minimum SDK: 21
Build configuration language: Groovy DSL(build.gradle)
Package Name
要跟开发者中心的包名一致
uniappx-test最低支持版本为21,Minimum SDK需要选择21及以上的版本
- 配置
build.gradle
基本信息
修改uniappx-test模块下的build.gradle
android {
...
defaultConfig {
minSdk 21
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
versionCode 1
versionName '1.0.0'
// noinspection ExpiredTargetSdkVersion
targetSdk 21
}
...
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compileOnly fileTree(dir: '../app/libs', include: ['*.aar'])
...
}
修改后点击build.gradle
右上角的Sync
注意:使用
noinspection ExpiredTargetSdkVersion
忽略Google Play的报错,创建虚拟机时,不要创建Google APIs
的 所有Module
的build.gradle
都要添加该注释
4.4. 拷贝资源文件
- 从
HBuilderX
拷贝静态资源到app主模块
拷贝的文件夹要与
AndroidManifest.xml
中的DCLOUD_UNI_APPID
的值保持一致
- 从
HBuilderX
拷贝kotlin
代码到uniappx-test
模块下
注意:不要破环java下原有目录结构
4.5. app主模块
依赖更新
- 将
uniappx-test
添加到app主模块
依赖
dependencies {
...
implementation project(':uniappx-test')
...
}
4.6. 打包apk
- app主模块
build.gradle
从开发者中心下载证书,获取相关信息,保存到项目根目录
android {
...
defaultConfig {
applicationId "com.example.uniappx_test"
...
}
signingConfigs {
config {
keyAlias '__uni__d2ff1d0'
keyPassword '开发者中心证书详情里拿到'
storeFile file('../__UNI__D2FF1D0.keystore')
storePassword '同keyPassword'
v1SigningEnabled true //兼容v1
v2SigningEnabled true //兼容v2
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
...
}
release {
signingConfig signingConfigs.config
...
}
}
...
}
- app主模块
Androidmanifest.xml
<meta-data android:name="DCLOUD_UNI_APPID" android:value="__UNI__D2FF1D0" />
<meta-data android:name="dcloud_appkey" android:value="开发者中心的离线打包key" />
- app主模块
dcloud_control.xml
<hbuilder>
<apps>
<app appid="__UNI__D2FF1D0" appver=""/>
</apps>
</hbuilder>
- studio打包
Build
-> Generate Signed App Bundle / APK
-> APK
-> 下图 -> Next -> Release
- 打包后apk所在路径
/app/release/app-release.apk
5. HBuilderX 云打包
5.1. 生成.keystore
- 查看
jdk
地址
/usr/libexec/java_home -V
Matching Java Virtual Machines (3):
17.0.10 (x86_64) "Oracle Corporation" - "Java SE 17.0.10" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
1.8.181.13 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_181 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
- 进入
JDK
所在目录
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
- 输入命令生成
.keystore
sudo keytool -genkey -alias AAAAAA -keyalg RSA -validity 36500 -keysize 1024 -keystore java8.keystore -v
查看密钥信息(123456)
sudo keytool -list -v -keystore java8.keystore
5.2. 选择发行
5.3. 选择证书
当前选择自定义证书
,也可以选择云证书
(在开发者中心查看)
5.4. 下载apk
6. 开发调试
6.1. HBuilderX 真机调试
android掌上学习机
(android5.1.1)
android手机 Settings->System->Developer options->开启顶部总开关(On)->Debugging->开启USB debugging
HBuilderX 选中项目->运行->运行到手机或模拟器->运行到Android App基座
华为手机
- android手机
手机设置->关于手机->版本号(连点2-7下开启开发者模式)
手机设置->系统和更新->开发人员选项->开发人员选项/USB调试
MAC连接
android
设备,安装驱动助手(如:华为荣耀,安装手机助手) 根据步骤一步步连接MAC打开
关于本机
->系统报告
->硬件/USB
->USB 3.1 总线
找到华为设备,复制厂商ID
打开MAC终端,输入命令
echo 0x12d1 >> ~/.android/adb_usb.ini
重启adb(HBuilderX)
HBuilderX 选中项目->运行->运行到手机或模拟器->运行到Android App基座
重启adb(HBuilderX)
6.2. HBuilderX引入原生插件
- 配置依赖