目标:自己生成一定金额的二维码,由他人扫描支付。并获取支付结果
一、生成发布版apk
由于历史原因,apk一直用的是debug版。生成发布版时报了一个错误:
Errors while building APK. You can find the errors in the 'Messages' view.// 建立APK时出错。您可以在“消息”视图中找到错误。
Please correct the above warnings first.// 请先更正警告
更详细的信息:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.(...)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.io.IOException: Please correct the above warnings first.
at com.android.builder.tasks.Job.awaitRethrowExceptions(Job.java:79)
at com.android.build.gradle.internal.transforms.ProGuardTransform.transform(ProGuardTransform.java:180)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:178)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:174)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
... 81 more
Caused by: java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:473)
at proguard.ProGuard.initialize(ProGuard.java:233)
at proguard.ProGuard.execute(ProGuard.java:98)
at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:54)
at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:239)
at com.android.build.gradle.internal.transforms.ProGuardTransform.access$000(ProGuardTransform.java:61)
at com.android.build.gradle.internal.transforms.ProGuardTransform$1.run(ProGuardTransform.java:170)
at com.android.builder.tasks.Job.runTask(Job.java:51)
at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:223)
... 1 more
让我们抽丝剥茧,破解谜题:
1.TaskExecutionException
任务执行异常,执行任务的失败。(这个没发现有价值信息,好多异常前都有这个,目测是个父类)
2.app:transformClassesAndResourcesWithProguardForRelease’.
从字面意思看:转换、类文件、资源文件、混淆、发布版。我们大概猜到这是生成发布版时混淆出了问题,毕竟AS有一个管理混淆规则的文件叫 proguard-rules.pro。
经过百度,我们知道在混淆文件中添加“-ignorewarnings”可以屏蔽这个警告,从而成功打包。
二、生成微信的收款码
1.这里我们找到了参考文章Android微信生成支付二维码URL,从文章里的代码我们得知技术上是可行的。
2.好了,执行下一步,检索“WXPayUtils”,我们可以获得很多相关文章。并从中获取一条线索:微信开放平台移动支付开发文档
3.这里我们要完成两件事:注册开放平台账号和捋清开发步骤。
好吧,我是最近才搞定账号的问题。有另一种方法是扫描对方付款码,将付款码提交给后台,由后台处理。可行,单不是本文主旨,这里只是提一下。
流程就是:注册开放平台账号–>创建应用,上传apk(注意是发布版的)并审核通过–>-->–>
这里写自定义目录标题
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:-