哈喽哈,我是小王子,最近写了一个网页套壳的APP,用的技术是java+hbuild+android studio
,整体来说还是很费事的因为它也的确很费事会有许多坑坑坑了啦
- 首要我们要在电脑上装置一些东西,首要java包要用
jre1.8.0\_201
或之前的包,之后的包不会生成md5的密钥哦,嘿嘿 - 其次我这边装置的是
android-studio-2021.1.1.22-windows
这个版别的东西,自行去找资源,假如找不到能够来找我安慰你 - hbuild版别用最新的就能够这儿不做要求了哦
- 没有第四条了,这儿我为什么要写第四条呢,因为随手打下来的
一、装置android studio
一般来说呢直接装置就能够了呢,可是进去了之后会遇到许多问题,可是呢这些问题大部分是一个原因,没有装备呢镜像的原因
挑选autodetectproxy settings, 填maven.aliyun.com/nexus/conte…
然后关掉android studio后重开,根本就能够了呢,在2023.4.13日运用是能够的了
二、装置java并且产生一个秘钥
-
装置JRE环境(引荐运用JRE8环境,如已有可越过)
-
生成签名证书
运用keytool -genkey指令生成证书:
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 <testalias>
(RETURN if same as keystore password): //确认证书暗码与证书文件暗码相同(HBuilder|HBuilderX要求这两个暗码共同),直接回车就能够
以上指令运转完结后就会生成证书,途径为你运转这段代码的文件下。
3.检查证书信息
能够运用以下指令检查:
keytool -list -v -keystore test.keystore
Enter keystore password: //输入暗码,回车
会输出以下格式信息:
Keystore type: PKCS12
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: test
Creation date: 2019-10-28
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Serial number: 7dd12840
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119
Certificate fingerprints:
MD5: F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5
SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7
SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
其中证书指纹信息(Certificate fingerprints):
- MD5
证书的MD5指纹信息(安全码MD5) - SHA1
证书的SHA1指纹信息(安全码SHA1) - SHA256
证书的SHA256指纹信息(安全码SHA245)
三、生成app的那个有必要要用的key
- 去dclioud的官方开发者的官网(dev.dcloud.net.cn/pages/app/l…
- 找到你的使用
- 点击你的使用称号
- 点击
各平台信息
选项 - 在修正里边填上第二部生成的那些东西
- 在离线打包里边检查你的app的key
- 这个key很有用的记得记一下
四、运转你的安卓app呢
一、生成本地打包APP资源
HBuilderX菜单:发行=》原生app本地打包=》生成本地打包APP资源; 生成的资源后面用到
预备工程
一:新建工程
打开Android studio新建一个空白项目
挑选 Empty Activity 点击 Next。
Minimum API Level 主张选21及以上
Package name作为使用标志,涉及请求第三方平台账号,一般状况下不主张修正,包名一般设置反向域名,如:io.dcloud.HBuilder
点击 Finish 完结创立
二:导入工程
2.7.0之后提供HBuilder-Integrate-AS工程,能够直接导入HBuilder-Integrate-AS工程,直接运转simpleDemo项目即可。
三:预备工作
- 把
HBuilder-Integrate-AS
仿制到项目文件夹; - 左上角把
Android
切换为Project
(下图);
- 把第一步打包好的资源放到
\simpleDemo\src\main\assets\apps
内; - 把
\simpleDemo\src\main\assets\data
的dcloud_control.xml
的appid改为自己的; - 把
\simpleDemo\src\main\res\drawable
的图标改为自己的,splash则能够右键创立 .9 启动图(splash.png和splash.9.png只能保存一个); - 把
\simpleDemo\src\main\res\values\strings.xml
的app称号改为自己的,这个会显示在手机桌面; -
要点
修正文件\app\src\main\AndroidManifest.xml
把manifest节点的package特点改为自己项目的包名;
查找dcloud_appkey,把下一行的value值改为dcloud开发者后台生成的appkey;
- 增加权限:在application节点前,与application节点并排:
例如:(也便是uniapp项目的装备文件manifest.json里边的权限permission那一坨)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- 装备
build.gradle
,在app(simpleDemo)目录下:
defaultConfig: applicationId包名
versionCode版别号code
versionName版别号
signingConfigs:装备证书相关信息
- 装备keystore,build.gradle文件的android节点下装备如下:
signingConfigs {
config {
keyAlias '签名别号'
keyPassword '签名暗码'
storeFile file('xxx/xxx/xxx.keystore或xxx/xxx/xxx.jks') // 路劲为相对途径或绝对途径
storePassword '暗码'
v1SigningEnabled true //兼容v1
v2SigningEnabled true //兼容v2
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
...
}
release {
signingConfig signingConfigs.config
...
}
}
项目装备都正确怎样还是提示”未装备AppKey或装备过错”?
这种状况不用置疑。还是装置包的信息与你在请求Appkey填写信息不符导致的。 appid+使用包名+签名sha1三者有必要与请求填写的信息共同才能够的。
android平台 能够按以下过程检查一下离线项目装备:
- 检查签名文件是否装备到了主APP的build.gradle,装备方式参阅上面常见问题1。注意:需求将signingConfigs增加到buildTypes才会生效
- 检查离线项目中dcloud_control.xml文件中的appid是否与请求AppKey时的appid共同。
3. 检测离线项目的包名是否请求AppKey时的包名是否共同。
- 比照装置包apk文件的SHA1是否与使用后台装备的SHA1共同。
- Android studio调试时提示appkey装备过错,参阅文档获取签名信息与后台装备SHA1比照是否共同。
- 生成正式包时提示appkey装备过错,获取装置包apk文件获取(签名参阅下面问题4)与后台装备SHA1比照是否共同。
- 检查dcloud_appkey装备位置是否正确,dcloud_appkey必定要放到Androidmanifest.xml文件的application节点里。
<application>
<meta-data
android:name="dcloud_appkey"
android:value="替换为自己请求的Appkey" />
</application>
五、运转你的安卓app呢出现的问题
1.你的安卓运转图标完全不急毛亮,一直是灰色的我去贼厉害了呢,点击工具栏的SyncProject with Gradle Files按钮
点击按钮后会开端同步Gradle,下载一些相关的东西,若同步后有报错就把相关过错修复后再重新同步一次
六、打包输出你的安卓apk的安卓包子
- 经过签名jks来试试,点击导航栏的Build→Generate Signed Bundle / APK…
Next
这儿需求一个商店的key,因为没有,所以创立一个新的,点击Create new…
首要指明生成的jks文件的途径,点击这个文件夹图标。
然后命名jks的称号为GenerateAPK,然后点击OK。
然后输入这个jks和别号的一些相关信息,上方的商店暗码和别号暗码能够设置为相同的,这样便于回忆,只不过安全系数就降低了。我上面设置的是123456,信息都设置好了之后,点击OK。
假如出现这个弹窗,你能够不用担心,点击OK。
这儿勾选上记住暗码。
挑选release,下面两个都勾选上,然后点击Finish。
当你看到屏幕的右下角出现这个提示时,说明你的APK现已生成了,你能够在你的app下看到多了一个release的文件夹,里边便是app-release.apk包,下面你能够仿制发到手机上,然后下载,手机上是能够装置的。
三、打包的细节优化
从上面的操作中,你现已知道了一些内容,而在根本的开发中也是会用到的,而为了更好差异不同的包名,常用会给apk进行一个重命名,让你一眼就知道这个apk是哪个项目的。
① 自定义Apk姓名
修正app下的build.gradle
// 自定义打包称号
android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "GenerateAPK_${buildType.name}_v${versionName}.apk" } }
增加位置如下图所示
- 以上apk打包参阅 blog.csdn.net/qq\_3843621…
七、装置中文的android studio
1.点击下方卡片进入IntelliJ Platform插件页面
Chinese (Simplified) Language Pack / 中文语言包 – IntelliJ IDEs Plugin | Marketplace
2.点击,这儿必定要装置和你匹配的中文包必定
3.点击download
4.打开刚刚下载的zip,解压
5.按下图操作
6.找到刚刚解压的jar文件,点击OK
- 点击,挑选
在弹出的界面,单击plugins
查找chinese,下载第二个
-
重启
-
以上录入与www.zhihu.com/tardis/zm/a…
感谢收看,哈哈哈哈,下次我再分享如何将base64的图片改为file格式类型