由于根据官网上面和百度出来的文章配置一直都有各种错误,最后成功了就记录一下配置过程。
打包方式 - 线上打包
⦁ 登录 https://account.dcloud.net.cn/oauth2?client_id=DCLOUD_DEV
⦁ 创建应用(操作简单直接略过),创建好了点击应用名称进入引用管理界面
⦁ SHA1证书生成
文档:https://ask.dcloud.net.cn/article/35777
⦁ 下载jre
网址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
⦁ 安装jre
⦁ 设置环境变量
打开cmd 输入指令
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin"
⦁ 重启电脑
⦁ 生成证书
打开cmd进入证书保存目录,输入指令
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
指令说明:
-alias testalias:testalias是别名,取自己想要的
-validity 36500:有效期,单位:天
-keystore test.keystore:test.keystore是证书名,取自己想要的
⦁ 填写证书相关信息
⦁ 证书生成之后 使用指令keytool -list -v -keystore test.keystore 查看证书内容,将证书指纹SHA1的值复制并填写到上面第二点的第二张图中Android 证书签名SHA1位置
⦁ 切换到HBuilderX 点击发行 -> 云原生打包 填写相关的信息就可以打包了
注意事项:
⦁ 如果装完jre配置好环境变量之后还是会提示以下异常,请重启电脑之后再试
离线打包
下载HBuilderX的Android-SDK
https://nativesupport.dcloud.net.cn/AppDocs/download/android
下载Android Studio 的 gradle (离线方式,此方式尝试了很多遍都不行)
https://downloads.gradle-dn.com/distributions/gradle-6.7.1-bin.zip
以下地址需要开通访问权限
Android Studio 的 gradle (在线方式)
https://services.gradle.org
Android Studio 的 构建工具
https://downloads.gradle-dn.com/
Android Studio 的 一部分资源包
https://repo.maven.apache.org
https://jcenter.bintray.com/
https://maven.google.com
https://dl.google.com
1、HBuilderX中生成离线文件,将生成好的离线文件copy出来放到自定义文件夹备用
2、创建Appkey,参考在线打包 2 、3 、4步骤
3、Android Studio 新建项目
4、从下载好的HBuilderX Android SDK中 找出以下四个包
⦁ 将上面四个包放入项目路径中
7、从下载好的HBuilderX Android SDK中拿出assets文件夹并将整个文件夹复制到项目中(整个文件夹拖动进去就好)
8、将第一步HBuilderX生成好的项目文件拖进Android Studio 项目中
9、请注意选中的几个文件还有res文件夹中的文件,接下来将会对这几个文件进行修改配置,
10、将证书复制到app文件夹中
11、在build.grandle(:app)中添加配置
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'
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
...
}
}
aaptOptions {
additionalParameters '--auto-add-overlay'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
12、在AndroidManifest.xml中添加配置
<meta-data android:name="dcloud_appkey" android:value="替换为自己申请的Appkey" />
<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" >
<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"
android:hardwareAccelerated="true"
android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
android:screenOrientation="user"
android:theme="@style/DCloudTheme"
android:windowSoftInputMode="adjustResize">
<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>
<!--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>
13、权限复制,在HBuilderX项目中,将manifest.json的权限配置,复制到Android Studio项目中的AndroidManifest.xml
14、设置图标
15、运行到虚拟机看效果
注意事项:
1、根据官网打包配置之后有可能会报以下错误,需要在gradle.properties中配置
android.useAndroidX=true
android.enableJetifier=true
2、在VM中Android Studio 的模拟器安装不了(可能需要vm去怎么配置,没有去研究)
3、模拟器运行时黑屏处理
4、与元素类型 "application" 相关联的属性 "tools:replace" 的前缀 "tools" 未绑定。
在AndroidManifest.xml添加:xmlns:tools="http://schemas.android.com/tools"
5、
这是因为AndroidManifest.xml没有配置action
文章整理参考来源于:
HCloud文档
https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey
博主WeHi的文档
https://blog.csdn.net/weixin_44503391/article/details/106341080?spm=1001.2014.3001.5501