本文章参考官网和其他博客,如有侵权,立即删除
官网地址:原生开发者支持
需要的工具
HBuilder X 链接:HBuilderX-高效极客技巧
Android Studio 链接:Download Android Studio and SDK tools | Android Developers
App离线SDK 链接:原生开发者支持
HBuilder X生成本地App资源
1.创建uni-app模板
2.修改mainfest.json中的基础配置
选择本机打包
解压Android 离线SDK
解压后的项目结构
这里要用到的文件在SDKassertsdata 下的三个文件 和SDKlibs下的lib.5plus.base-release.aar、android-gif-drawable-release@1.2.23.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar复制一份备用
Android studio离线打包apk环境配置
1.创建一个空的模板,填写项目的相关信息
2.环境配置
之后吧libs下的四个文件复制到applibs下面
HBuilderX3.2.5版本之后适配了AndroidX。
AndroidX版本需添加如下资源在appbuild.gradle文件中
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’ implementation ‘androidx.recyclerview:recyclerview:1.0.0’ implementation ‘com.facebook.fresco:fresco:2.5.0’ implementation “com.facebook.fresco:animated-gif:2.5.0” implementation ‘com.github.bumptech.glide:glide:4.9.0’ implementation ‘com.alibaba:fastjson:1.1.46.android’
support版本需添加如下资源
implementation fileTree(dir: ‘libs’, include: [‘*.aar’, ‘*.jar’], exclude: []) implementation “com.android.support:support-v4:28.0.0” implementation “com.android.support:appcompat-v7:28.0.0” implementation ‘com.android.support:recyclerview-v7:28.0.0’ implementation ‘com.facebook.fresco:fresco:1.13.0’ implementation “com.facebook.fresco:animated-gif:1.13.0” implementation ‘com.github.bumptech.glide:glide:4.9.0’ implementation ‘com.alibaba:fastjson:1.1.46.android’
uni-app配置时需要在build.gradle中添加aaptOptions配置
aaptOptions { additionalParameters ‘–auto-add-overlay’ ignoreAssetsPattern “!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~” }
将HBuilderX中的项目导出,将导出的资源复制到src->main->assets->apps下,没有assets,apps文件就新建,把离线SDK->assets->data文件夹复制到项目的src->main->assets下,复制后的结构如下
修改dcloud_control.xml文件
修改dcloud_control.xml中的appid为拷贝过来的uni-app的id,确保dcloud_control.xml中的appid与manifest.json中的id与文件夹名一致
同时build.gradle中的版本号和版本名字最好对应Hbuilder X打包的信息
- 配置应用名称 打开app-> src -> main -> res -> values -> strings.xml文件,修改“app_name”字段值,该值为安装到手机上桌面显示的应用名称,建议与manifest.json中name(基础配置中的应用名称)对应。
配置应用启动页及provider节点
将下述内容添加到Androidmanifest.xml的application节点中
注意:新建的项目默认会有一个MainActivity的节点,必须删掉!
<activity android:name="io.dcloud.PandoraEntry" android:configChanges="orientation|keyboardHidden|keyboard|navigation" android:label="@string/app_name" android:launchMode="singleTask" android:hardwareAccelerated="true" android:theme="@style/TranslucentTheme" android:screenOrientation="user" android:windowSoftInputMode="adjustResize" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="io.dcloud.PandoraEntryActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize" android:hardwareAccelerated="true" android:permission="com.miui.securitycenter.permission.AppPermissionsEditor" android:screenOrientation="user" android:theme="@style/DCloudTheme" android:windowSoftInputMode="adjustResize" android:exported="true"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <action android:name="android.intent.action.VIEW" /> <data android:scheme="h56131bcf" /> </intent-filter> </activity> Jetbrains全家桶1年46,售后保障稳定 <!--provider节点必须添加--> <provider android:name="io.dcloud.common.util.DCloud_FileProvider" android:authorities="${apk.applicationId}.dc.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/dcloud_file_provider" /> </provider>
改完后的
配置Appkey
3.1.10版本起需要申请 Appkey,申请请参考
打开Androidmanifest.xml, 导航到Application节点,创建meta-data节点,name为dcloud_appkey,value为申请的AppKey如下:
<application …> <meta-data android:name=”dcloud_appkey” android:value=”替换为自己申请的Appkey” />
登录开发者中心:DCloud开发者中心
点击离线打包可以管理 Android 包名,对应android项目的包名,Android证书签名SHA1,可以自己生成证书,把证书的SHA1复制过来
现在我来说两种生成证书的方式:
1,使用android studio工具生成
2,在开发者中心使用应用证书管理生成证书(还不知道有什么安全隐患,建议使用第一种)
android studio工具
刷新一下就可以看到jks文件
然后就是查看jks文件的SHA1值,利用keytool工具
在命令窗口输入keytool -list -v -keystore canvaskeystore.jks,口令就输入在android studio设置的密码
开发者中心应用证书管理
点击创建证书,应用证书创建后由系统生成后方可查看及下载,应用证书生成后会通过邮件告知生成结果,生成证书后的样子
把生成的证书下载,放到项目的app文件夹下,把生成的App key复制到对应的AndroidManifest.xml的位置
最后一步配置文件打包编译
APP的build.gradle文件的android节点下配置如下:
代码语言:javascript复制signingConfigs {
config {
keyAlias '签名别名'
keyPassword '密码'
storeFile file('xxx.keystore或xxx.jks')
storePassword '密码'
v1SigningEnabled true //兼容v1
v2SigningEnabled true //兼容v2
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
...
}
release {
signingConfig signingConfigs.config
...
}
}
我这里配置的是使用android studio工具生成的证书填写的信息
打包
测试运行,配置手机模拟器,运行成功
如果出现appley is not configured or configured incorrectly,
查看原生开发者支持
本文章如有错误,请各位大神赐教
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/230889.html原文链接:https://javaforall.cn