【cordova】使用cordova-plugin-local-notification做本地消息通知的时候报错处理

孔鸿哲
2023-12-01

第一次写博,鼓励自己一下!

首先:上bug!

  • What went wrong:
    Could not resolve all files for configuration ‘:app:releaseCompileClasspath’.

Could not resolve com.android.support:support-v4:26.+.
Required by:
project :app
Failed to list versions for com.android.support:support-v4.
> Unable to load Maven meta-data from https://maven.google.com/com/android/support/support-v4/maven-metadata.xml.
> Could not get resource ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.
> Could not GET ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.
> Connect to maven.google.com:443 [maven.google.com/142.251.42.238] failed: Connection timed out: connect
Failed to list versions for com.android.support:support-v4.
> Unable to load Maven meta-data from https://maven.google.com/com/android/support/support-v4/maven-metadata.xml.
> Could not get resource ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.
> Could not GET ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.
> Connect to maven.google.com:443 [maven.google.com/172.217.163.46] failed: Connection timed out: connect
Failed to list versions for com.android.support:support-v4.
> Unable to load Maven meta-data from https://maven.google.com/com/android/support/support-v4/maven-metadata.xml.
> Could not get resource ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.
> Could not GET ‘https://maven.google.com/com/android/support/support-v4/maven-metadata.xml’.

Connect to maven.google.com:443 [maven.google.com/172.217.163.46] failed: Connection timed out: connect

描述一下场景吧,本人前端后端都搞过,.net、java、go、vue、angular等多少都会点儿,好像都不太擅长的样子,现在入职的是一家小公司,什么人都缺的那种。最近在做一款软件,需要web端和app都上,由于公司没有专业做Android的,所以采用了框架Cordova,本人也是第一次接触,所以很多东西都是摸石头过河。项目组人不多,很多东西出了问题最后都会找到我,原因很简单——因为我老。
闲言少叙,言归正传。在做app的时候,需要本地消息通知。首先考虑使用现有平台,省的造轮子,倾向与大厂,最终选择阿里push。原以为在项目中集成阿里云push之后消息就能收到并且能够直接在手机端提示出来,然而,我错了。阿里云只负责把消息推送到移动端,怎么做消息通知,依然需要本农自己搞定(有可能阿里云有这方面的功能,而我没有找到,欢迎大家评论区指正)。网上一顿搜索,再次选择搬轮子。
注意!!!
问题出现了,一开始选择了cordova-plugin-local-notifications-appstr,安装插件之后,build就报了开始这个错误。首先怀疑版本问题,毕竟,明晃晃的support-v4:26.+.已经出现在报错里了。找升级版本-没有找到。然后再看, Connect to maven.google.com:443 [maven.google.com/172.217.163.46] failed: Connection timed out: connect 出现了,没说的翻墙吧,试了一下翻墙软件,之后build还是不成功,结果依然。第三招,换插件,又在网上巴拉了一顿,cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git、cordova plugin add cordova-plugin-local-notification都试了一下还是一样的结果(最终发现这俩好像是一个东西)。在网上继续找解决办法,最终找到令人眼前一亮的结果,将maven对应的url地址maven.google.com配置为阿里云镜像’https://maven.aliyun.com/repository/google’ 。改吧,因为bug出现在添加了notification插件之后,所以将notification对应的gradle文件修改之后,还是不成功。期间又打开as,检查了sdk有没有安装之类的,最终还是没有解决,真的迷茫了…
各种纠结之后,排查吧,耐着性子,一步一步来。
第一步,重新拉取这轮操作之前的项目,build,成功。好消息!
第二步,直接添加notification插件,build,问题复现。好消息!
第三步,翻墙,问题存在。不好不坏的消息!
第四步,替换为maven镜像,问题存在。不好不坏的消息!
第五步,全局搜索google(),替换为maven镜像,打包成功。好消息!
第六步,添加阿里云push插件,其实这步是最担心的,就怕两个插件冲突。打包试验,成功。好消息!

最终结论是全局搜索替换google()为
​ maven {
​ url “https://maven.aliyun.com/repository/google”
​ name ‘Google’
​ }。

这个试验到这里结束了么?当然没有!在没有确定的理论依据的情况下,比问题无法解决更恐怖的是,关键时刻突然间暴雷!比如我的电脑突然坏了,而别人的机子上又出现了无法打包的情况。
提交cordova配置,在同事机子上备份工作空间、更新。
第一步,替换notification对应gradle文件里google(),失败!
第二步,替换build.gradle文件里的google(),成功!what,这两个文件我确定在自己的机子上修改后试验是失败的啊。

怀疑跟执行顺序有关吧,因为进度原因,带着疑惑结束了这次的旅程!

 类似资料: