当前位置: 首页 > 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;后者在输出信息中增加时间…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...