赞
踩
uni-app本地安卓打包
1、下载sdk——Android-SDK@3.1.13.80836_20210517
https://nativesupport.dcloud.net.cn/AppDocs/download/android
2、复制sdk包中的demo工程HBuilder-HelloUniApp到任意目录,使用android studio打开HBuilder-HelloUniApp
3、将Android-SDK@3.1.13.80836_20210517\SDK\libs中lib.5plus.base-release.aar、android-gif-drawable-release@1.2.17.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar拷贝到demo工程的app/libs目录下
4、Hbuilder,发行-原生App-本地打包-生成本地打包APP资源。将生成的目录\unpackage\resources__UNI__ECBD83A复制到android studio的demo工程的src\main\assets\apps下。
生成本地打包APP资源。Hbuilder本地打包生成的包如下:
将Hbuilder生成的包放到HBuilder-HelloUniApp项目中
5、在uniapp官网 https://dev.dcloud.net.cn/pages/app/list 获取appID下的项目的appKey
5、将src\main\assets\data\dcloud_control.xml中的appid配置为生成资源的目录名(例如__UNI__ECBD83A)
6、signingConfigs配置证书 https://ask.dcloud.net.cn/article/35777
假设jre安装目录为“C:\Program Files\Java\jre1.8.0_201”
d: // 切换工作目录到D:路径
set PATH=%PATH%;“C:\Program Files\Java\jre1.8.0_201\bin” // 将jre命令添加到临时环境变量中
生成签名证书
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
Enter keystore password: //输入证书文件密码,输入完成回车
Re-enter new password: //再次输入证书文件密码,输入完成回车
What is your first and last name?
[Unknown]: //输入名字和姓氏,输入完成回车
What is the name of your organizational unit?
[Unknown]: //输入组织单位名称,输入完成回车
What is the name of your organization?
[Unknown]: //输入组织名称,输入完成回车
What is the name of your City or Locality?
[Unknown]: //输入城市或区域名称,输入完成回车
What is the name of your State or Province?
[Unknown]: //输入省/市/自治区名称,输入完成回车
What is the two-letter country code for this unit?
[Unknown]: //输入国家/地区代号(两个字母),中国为CN,输入完成回车
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
[no]: //确认上面输入的内容是否正确,输入y,回车
Enter key password for
(RETURN if same as keystore password): //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
7、修改build.gradle
修改版本号、applicationId
apply plugin: ‘com.android.application’
android {
compileSdkVersion 29
buildToolsVersion ‘28.0.3’
defaultConfig {
applicationId “io.dcloud.HelloH5”
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName “1.0”
multiDexEnabled true
ndk {
abiFilters ‘x86’, ‘armeabi-v7a’, ‘arm64-v8a’
}
manifestPlaceholders = [
“apk.applicationId” : “com.android.HelloH5”,
“GETUI_APPID” : “unipush的appid”,
“plus.unipush.appid” : “unipush的appid”,
“plus.unipush.appkey” : “unipuish的appkey”,
“plus.unipush.appsecret”: “unipush的secrety”
]
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
signingConfigs {
config {
keyAlias ‘key0’
keyPassword ‘123456’
storeFile file(‘test.jks’)
storePassword ‘123456’
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
release {
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
//使用uniapp时,需复制下面代码
/*代码开始*/
aaptOptions {
additionalParameters '--auto-add-overlay'
//noCompress 'foo', 'bar'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
/*代码结束*/
}
repositories {
flatDir {
dirs ‘libs’
}
}
dependencies {
implementation fileTree(include: [‘.jar’], dir: ‘libs’)
implementation fileTree(include: ['.aar’], dir: ‘libs’)
implementation ‘androidx.appcompat:appcompat:1.0.0’
implementation ‘androidx.legacy:legacy-support-v4:1.0.0’
/uniapp所需库-----------------------开始/
implementation ‘androidx.recyclerview:recyclerview:1.0.0’
implementation ‘com.facebook.fresco:fresco:2.5.0’
implementation “com.facebook.fresco:animated-gif:2.5.0”
/uniapp所需库-----------------------结束/
// 基座需要,必须添加
implementation ‘com.github.bumptech.glide:glide:4.9.0’
implementation ‘com.alibaba:fastjson:1.1.46.android’
}
8、Android打包
打包完的apk在\app\release路径下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。