我的编程空间,编程开发者的网络收藏夹
学习永远不晚

小米便签从0到1维护教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

小米便签从0到1维护教程

小米便签开源社区版从0到1维护教程

1.前置条件-------软件的安装:

开发工具:Android studio

下载Android studio

汉化教程

安装请自行解决

SDK版本以及相关文件

版本为安卓10

SDK Tools:

在这里插入图片描述

小米便签的维护:

下载小米便签的源码:

下载地址:小米便签源码下载

下载完成后的文件结构:
在这里插入图片描述

源文件结构如上图,显而易见,源文件里面没有grandle项目管理工具,因此在用android studio打开的时候,要使用下面的方式

在这里插入图片描述

这种方式会为项目添加一个gradle,打开项目后,等待项目加载完成,然后讲javaJDK 版本更改成JDK8(我在维护的时候这里报过错,没有报错的可以不改)

流程如下:

点击文件,选择项目结构

在这里插入图片描述
在这里插入图片描述

选择SDK Location,再点击Gradle Settings

在这里插入图片描述
在这里插入图片描述

将JDK设置为Java8

在这里插入图片描述

打开项目过后结果:

在这里插入图片描述

此时,项目报错:
Could not find com.android.tools.build:gradle:7.4.2.Searched in the following locations:https://jcenter.bintray.com/com/android/tools/build/gradle/7.4.2/gradle-7.4.2.pomIf the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.Required by:project :Add google Maven repository and sync projectOpen File
根据提示,我们在在项目的 build.gradle(Project:Notes) 文件中添加 Google Maven 仓库。你可以在 repositories 块中添加以下代码:
 maven {            url 'https://dl.google.com/android/maven2'        }
添加完后如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositories {        maven {            url 'https://dl.google.com/android/maven2'        }        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:7.4.2'    }}allprojects {    repositories {        jcenter()    }}
添加完成后点击右上角的图标:

在这里插入图片描述

此时,开始下载组件:在这里插入图片描述
等待下载,下载过程中,可能会出现问题:
A problem occurred configuring root project 'Notes'.Could not resolve all files for configuration ':classpath'.Could not download kotlin-stdlib-common-1.7.10.jar (org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10)> Could not get resource 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10/kotlin-stdlib-common-1.7.10.jar'.> Could not GET 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10/kotlin-stdlib-common-1.7.10.jar'.> The server may not support the client's requested TLS protocol versions: (TLSv1.2, TLSv1.3). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/7.5/userguide/build_environment.html#gradle_system_properties> Remote host terminated the handshake
这个问题是当前正在使用的仓库已经停止维护,我们使用maven仓库来代替原来的仓库,向项目的 build.gradle(Project:Notes) 文件中,你可以添加以下代码来使用 Maven 中央仓库:
repositories {    mavenCentral()}
添加完成后,整个代码如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositories {        mavenCentral()        maven {            url 'https://dl.google.com/android/maven2'        }        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:7.4.2'    }}allprojects {    repositories {        jcenter()    }}
现在点击更新,会出现一处错误:
Execution failed for task ':app:mergeDebugResources'.A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnableCould not isolate value com.android.build.gradle.internal.res.Aapt2CompileRunnable$Params_Decorated@7e8ac076 of type Aapt2CompileRunnable.Params> Could not resolve all files for configuration ':app:detachedConfiguration2'.> Could not find com.android.tools.build:aapt2:7.4.2-8841542.Searched in the following locations:- https://jcenter.bintray.com/com/android/tools/build/aapt2/7.4.2-8841542/aapt2-7.4.2-8841542.pomIf the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.Required by:project :app
我们在build.gradle(Project:Notes)文件里面添加一行代码:
  google()
添加后完整代码如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositories {        mavenCentral()        maven {            url 'https://dl.google.com/android/maven2'        }        google()        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:7.4.2'    }}allprojects {    repositories {        google()        jcenter()    }}
现在,我们再次构建:映入眼帘的是一个包的错误:

在这里插入图片描述

这个错误产生的原因是在 Android 中,org.apache.http 包已经被废弃,不再推荐在 Android 应用程序中使用,但是我们可以对这个这个包做一个兼容:在build.gradle(Module: App)里面添加
 useLibrary 'org.apache.http.legacy'
完整代码:
apply plugin: 'com.android.application'android {    compileSdkVersion 33    buildToolsVersion "33.0.2"    defaultConfig {        applicationId "net.micode.notes"        minSdkVersion 14        targetSdkVersion 33        useLibrary 'org.apache.http.legacy'    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'        }    }}
再次点击更新配置

在这里插入图片描述

包的错误暂时解决,不维护网络功能,另外,在GTaskASyncTask.java中,有一个方法报错:

在这里插入图片描述

我们将这个过时的方法更改掉:
//        notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,//                pendingIntent);        notification.contentIntent = pendingIntent;        mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
解决这个错误后,还有一个配置文件的错误:

在这里插入图片描述

这个错误是因为在 Android 12 及更高版本中,如果一个组件(如 Activity、Service 或 BroadcastReceiver)定义了 Intent 过滤器,则必须显式指定 android:exported 属性,以确保该组件只能被期望的应用程序或系统组件调用。如果没有指定 android:exported 属性,系统将会认为该组件是公开的,从而可能导致安全漏洞。为了解决这个问题,我们依次在报错的地方加上
android:exported="true"
android:exported="false"
如下:
双击报错位置:

在这里插入图片描述

来到报错的地方,依次更改:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打开AndroidManifest.xml文件,可以看到报错的地方:

在这里插入图片描述

控制台显示:

在这里插入图片描述

这个错误是由于 元素缺少 URI 属性所致。 元素用于指定 Intent 的数据 URI,如果你在 元素中指定了数据类型(如 android:mimeType 属性),则还必须指定数据 URI。如果没有指定数据 URI,系统将会认为数据缺失,从而导致 “Missing URL” 错误。
将报错的代码替换为:
<intent-filter>    <action android:name="android.intent.action.VIEW" />    <category android:name="android.intent.category.DEFAULT" />    <data android:mimeType="vnd.android.cursor.item/text_note" android:scheme="content" android:host="com.example.notes.provider" android:path="/notes" />    <data android:mimeType="vnd.android.cursor.item/call_note" android:scheme="content" android:host="com.example.notes.provider" android:path="/notes" /></intent-filter>

现在,我们已经解决了所有让程序停止运行的问题,点击运行一下:

在这里插入图片描述
在这里插入图片描述

这样,小米便签就能够运行起来了

到这里没有运行成功不要灰心~,下面是我打包的运行成功的程序:

点击下载
提取码:v6qd
链接:https://pan.xunlei.com/s/VNVEyleS4tQUNft2-DTE7x30A1
提取码:v6qd

制作不易,对您有用请留赞~~~~~

来源地址:https://blog.csdn.net/m0_68761369/article/details/130648473

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

小米便签从0到1维护教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录