当前位置: 首页 > news >正文

Android 天气APP(三十七)新版AS编译、更新镜像源、仓库源、修复部分BUG

上一篇:Android 天气APP(三十六)运行到本地AS、更新项目版本依赖、去掉ButterKnife

新版AS编译、更新镜像源、仓库源、修复部分BUG

  • 前言
  • 正文
    • 一、更新镜像源
      • ① 腾讯源
      • ③ 阿里源
    • 二、更新仓库源
    • 三、修复城市重名BUG
    • 四、地图加载问题
    • 五、源码

前言

  没想到我还会更新这个天气App的文章,起因是因为有读者运行源码后报错,然后上网找不到解决的办法,于是找到我,鉴于此,我写下原因和解决方法。

正文

  先说一下过程,这个项目我从2020年开始陆陆续续更新,最开始我使用的是Android Studio 3.5.2版本,随后有更新到Android Studio 4.0.1和4.2.1,随着AS的改动,对于项目本身来说一些依赖库就无法使用了,但是在之前的AS版本中是可以的。

  举个例子,就拿jcenter()来说,最开始这个仓库是AS中默认就有了,随着AS版本更新先是不推荐你使用这个仓库,改用mavenCentral(),但此时这个仓库里面的依赖库还能用,去年的时候,我的项目还是可以正常跑起来的,但今时不同往日,现在不行了,因为AS又更新了好多版本,现在这个仓库用不了了。

一、更新镜像源

  首先我们更新一下项目的镜像源,默认是使用Google的源,但是由于国内访问不太稳定,会造成你下载很慢、异常、超时等等问题,烦不胜烦,因此我们可以改成国内的镜像源,常用的就是阿里、腾讯的源。

这里我们打开项目的gradle-wrapper.properties看看。

在这里插入图片描述

① 腾讯源

下面我们来更换腾讯源,代码如下:

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.5-all.zip

在这里插入图片描述

实际上我们就是从

services.gradle.org/distributions

改成了

mirrors.cloud.tencent.com/gradle

③ 阿里源

distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-7.5-all.zip

在这里插入图片描述

实际上我们就是从

services.gradle.org/distributions

改成了

mirrors.aliyun.com/macports/distfiles/gradle

改完之后Sync Now即可,两者选一个就好了。

二、更新仓库源

下面我们运行一下看看,报什么错,根据具体的错误去解决问题。

在这里插入图片描述

从上诉错误来看有四个库的依赖出了问题,这几个库的作用分别是权限、刷新、数据库,实际上是3个,因为这个下拉刷新实际上是可以一起改的。本身的原因就是jcenter()仓库下的依赖库访问不了了,那么最简单的办法就是将jcenter()替换为国内的仓库源。

打开项目的build.gradle,找到jcenter(),修改为如下代码:

	maven { url 'https://maven.aliyun.com/repository/public' }

修改后如下图所示:

在这里插入图片描述

这里我将google()mavenCentral()也注释掉了,对应的我添加了

	maven { url 'https://maven.aliyun.com/repository/google' }

  这个就看你自己要不要替换了,需要注意的是,国内的库并不是实时同步国外的库的,所以,你可以不注释google()mavenCentral(),同时更新一些库的版本,改动后记得Sync Now同步一下即可。

三、修复城市重名BUG

  由于部分城市存在同名的情况,所以我们最好在请求城市搜索API的时候,最好带上城市,举一个例子,如果你当前定位在深圳南山,按照我们之前逻辑直接搜索南山的话,你会发现第一个出现的值不是深圳市南山区,而是黑龙江鹤岗南山,如下图所示:

在这里插入图片描述

  然后就有读者问我,不对啊,我定位在南山,为什么温度这么低啊,我当时就解释了,但是他有没有理解我不清楚,所以借着这个更新的机会,就顺便解决了,这里我们就该这个定位返回的地方,如果还有别的地方出现这样的情况,你可以再去更改,在MainActivity中改动如下图所示:

在这里插入图片描述

MapWeatherActivity中改动如下所示:

在这里插入图片描述

运行一下看看

在这里插入图片描述

在这里插入图片描述

非常好,我的代码还是照样运行,只不过我不会再把Key放在项目里面了,因为读者都用我的Key访问,导致和风认为我账号恶意访问,就封了我的和风账号,现在都没有解封。所以我又注册了一个账号,申请了新的Key才能够访问API,说多了都是泪。

四、地图加载问题

  地图加载问题,这个问题是什么意思呢?就是读者在运行项目的时候,天气API配置好了,于是进入地图页面,发现页面一直在加载中,然后就问我为什么?这个问题我之前就说过了原因,这是因为百度地图的SDK在创建应用的时候需要配置三个信息:发布版SHA1调试版SHA1包名。那么如果我们在当前本地运行的时候用的就是调试版SHA1,而我的调试版SHA1毫无疑问在我的百度地图开放平台上配置了,你又没配置,所以你访问不了,所以你看看控制台是不是会有这种类似的错误,如下图所示:

在这里插入图片描述

不出意外是有的,那么解决方式我之前也说过,有两种方式,第一种就是从新在你的SDK平台上配置一下,第二种方式就是我们通过创建一个jks,然后将调试和发布都改成使用这个jks即可,在app模块下的build.gradle中添加如下代码:

    signingConfigs {release {storeFile file('../weather.jks')storePassword '123456'keyAlias 'weather'keyPassword '123456'}debug {storeFile file('../weather.jks')storePassword '123456'keyAlias 'weather'keyPassword '123456'}}
    buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {signingConfig signingConfigs.release}}

添加位置如下图所示:

在这里插入图片描述

  改完记得Sync Now,通过jks去获取发布版SHA1值,然后通过上面的配置让我们debug的时候也是用发布版的jks,再回到百度开放平台,将开发版SHA1改成和发布版SHA1一样即可,如下图所示:

在这里插入图片描述

下面在运行,进入地图页面就会一直加载了,控制台也不会出现那个错误信息,我上面说的你最好自己在自己的平台上能配置一下,而不是拿着我的代码就跑,跑不起来就来问,先想想自己的原因。

五、源码

源码地址:GoodWeather
最新APK下载:GoodWeather3.0.apk

欢迎 Star 和 Fork

相关文章:

Android 天气APP(三十七)新版AS编译、更新镜像源、仓库源、修复部分BUG

上一篇:Android 天气APP(三十六)运行到本地AS、更新项目版本依赖、去掉ButterKnife 新版AS编译、更新镜像源、仓库源、修复部分BUG 前言正文一、更新镜像源① 腾讯源③ 阿里源 二、更新仓库源三、修复城市重名BUG四、地图加载问题五、源码 前…...

Xilinx IP核(3)XADC IP核

文章目录 1. XADC介绍2.输入要求3.输出4.XADC IP核使用5.传送门 1. XADC介绍 xadc在 所有的7系列器件上都有支持,通过将高质量模拟模块与可编程逻辑的灵活性相结合,可以为各种应用打造定制的模拟接口,XADC 包括双 12 位、每秒 1 兆样本 (MSP…...

计算机网络socket编程(2)_UDP网络编程实现网络字典

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(2)_UDP网络编程实现网络字典 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨…...

c#窗体列表框(combobox)应用——省市区列表选择实例

效果如下&#xff1a; designer.cs代码如下&#xff1a; using System.Collections.Generic;namespace 删除 {public partial class 省市区选择{private Dictionary<string, List<string>> provinceCityDictionary;private Dictionary<string,List<string&…...

Nginx 架构与设计

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;同时也可以用作邮件代理和通用的 TCP/UDP 负载均衡器。它的架构设计以高并发、高可扩展性和高性能为目标&#xff0c;充分利用操作系统提供的多路复用机制和事件驱动模型。以下是 Nginx 的架构和设计特点&#xff1a; 1…...

python Flask指定IP和端口

from flask import Flask, request import uuidimport json import osapp Flask(__name__)app.route(/) def hello_world():return Hello, World!if __name__ __main__:app.run(host0.0.0.0, port5000)...

多线程 相关面试集锦

什么是线程&#xff1f; 1、线程是操作系统能够进⾏运算调度的最⼩单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位&#xff0c;可以使⽤多线程对 进⾏运算提速。 ⽐如&#xff0c;如果⼀个线程完成⼀个任务要100毫秒&#xff0c;那么⽤⼗个线程完成改…...

【数据结构】—— 线索二叉树

引入 我们现在提倡节约型杜会&#xff0c; 一切都应该节约为本。对待我们的程序当然也不例外&#xff0c;能不浪费的时间或空间&#xff0c;都应该考虑节省。我们再观察团下图的二叉树&#xff08;链式存储结构)&#xff0c;会发现指针域并不是都充分的利用了&#xff0c;有许…...

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…...

How to update the content of one column in Mysql

How to update the content of one column in Mysql by another column name? UPDATE egg.eggs_record SET sold 2024-11-21 WHERE id 3 OR id 4;UPDATE egg.eggs_record SET egg_name duck egg WHERE id 2;...

URL在线编码解码- 加菲工具

URL在线编码解码 打开网站 加菲工具 选择“URL编码解码” 输入需要编码/解码的内容&#xff0c;点击“编码”/“解码”按钮 编码&#xff1a; 解码&#xff1a; 复制已经编码/解码后的内容。...

Python3 爬虫 Scrapy的安装

Scrapy是基于Python的分布式爬虫框架。使用它可以非常方便地实现分布式爬虫。Scrapy高度灵活&#xff0c;能够实现功能的自由拓展&#xff0c;让爬虫可以应对各种网站情况。同时&#xff0c;Scrapy封装了爬虫的很多实现细节&#xff0c;所以可以让开发者把更多的精力放在数据的…...

QT中QString类的各种使用

大部分的QString使用可以参考:QT中QString 类的使用--获取指定字符位置、截取子字符串等_qstring 取子串-CSDN博客 补充一种QString类的分离:Qt QString切割(Split()与Mid()函数详解)_qstring split-CSDN博客 1. Trimmed和Simplified函数(去除空白) trimmed&#xff1a;去除了…...

linux 网络安全不完全笔记

一、安装Centos 二、Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网 三、Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install –y Software b.使用 yum 更新软件 yum update –y Software c.使用 yum 移除软件 yum remove –y Software d.使用 yum …...

uniapp将图片url转换成base64支持app和h5

uniapp将图片url转换成base64支持app和h5 imageToBase64支持app和h5, app内使用plus.io.resolveLocalFileSystemURL方法转换 h5内使用uni.request方法转换 // 图片转base64 export const imageToBase64 (path) > {// #ifdef APP-PLUSreturn new Promise((resolve, rejec…...

odoo17 档案管理之翻译2

翻译格式&#xff1a;#: model_terms:对象名称,arch_db:模块名.xml_id #. module: dms #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_kanban #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_kanban #: model_terms:ir.ui.view,arch_db:dms.view_dms_tag_…...

风尚云网前端学习:制作一款简易的在线计算器

风尚云网前端学习&#xff1a;制作一款简易的在线计算器 简介 在前端开发的学习过程中&#xff0c;实现一个简单的在线计算器是一个常见的练习项目。它不仅能够帮助我们熟悉HTML、CSS和JavaScript的基本用法&#xff0c;还能够加深我们对事件处理和DOM操作的理解。今天&#…...

Android蓝牙架构,源文件目录/编译方式学习

Android 版本 发布时间 代号&#xff08;Codename&#xff09; Android 1.0 2008年9月23日 无 Android 1.1 2009年2月9日 Petit Four Android 1.5 2009年4月27日 Cupcake Android 1.6 2009年9月15日 Donut Android 2.0 2009年10月26日 Eclair Android 2.1 2…...

ubuntu中使用ffmpeg和nginx推流rtmp视频

最近在测试ffmpeg推流rtmp视频&#xff0c;单独安装ffmpeg是无法完成推流的&#xff0c;需要一个流媒体服务器&#xff0c;常用nginx&#xff0c;可以直接在ubuntu虚拟机里面测试一下。 测试过程不涉及编译ffmpeg和nginx&#xff0c;仅使用基本功能&#xff1a; 1 安装ffmpeg …...

strongswan测试流程

测试shell脚本文件testing/do-tests&#xff0c;测试配置文件testing/testing.conf。do-tests脚本不加参数&#xff0c;将依次执行testing/tests/目录下的所有测试用例。do-tests脚本有两个参数-v和-t&#xff0c;前者在测试中记录详细信息&#xff0c;后者在输出信息中增加时间…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...