由于根據官網上面和百度出來的文章配置一直都有各種錯誤,最後成功了就記錄一下配置過程。
打包方式 - 線上打包
⦁ 登入 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