Android Gradle报错记录、开发笔记

1、org.gradle.api.tasks.TaskExecutionException,有时候报这个错是代码中有地方写错了,但是android studio不会定位到错误代码处。
解决方法:gradlew compileDebugSource --stacktrace -info
在AndroidStudio的terminal中输入上面的命令,会在terminal中输出编译日志,以此来定位具体的问题。

2、依赖重复问题,先用gradle语句查询某一个module依赖树,检索出重复的依赖(这里以app module为例):

gradlew app:dependencies --configuration compile

随后用排除依赖的语句将重复的依赖去除:

{
    exclude group:'xxx.xxx.xxx',module:'xxx'
}

3、Android studio升级3.6.x后报错 Entry name 'META-INF/MANIFEST.MF' collided:在工程的 gradle.properties 文件中添加如下配置:

android.useNewApkCreator=false

该配置含义请查看该链接:[译]Android Studio 3.6 新特性概览

4、因网络问题依赖下载失败,可以在工程的build.gradle文件中添加阿里云镜像地址:

maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }

5、升级AS之后,run debug时出现安装失败的提示:
在这里插入图片描述
网上很多是说apk没有卸载干净,但是都无法解决我目前的情况,最后发现是生成debug包时apk包包含中文的原因:
在这里插入图片描述
修改成英文之后问题解决:
在这里插入图片描述

6、检查依赖库是否有更新
在项目根目录下执行:
./gradlew dependencyUpdates

会在当前目录下生成 build/dependencyUpdates/report.txt 文件,内容如下所示:

The following dependencies have later release versions:
 - androidx.swiperefreshlayout:swiperefreshlayout [1.0.0 -> 1.1.0]
     https://developer.android.com/jetpack/androidx
 - com.squareup.okhttp3:logging-interceptor [3.9.0 -> 4.7.2]
     https://square.github.io/okhttp/
 - junit:junit [4.12 -> 4.13]
     http://junit.org
 - org.koin:koin-android [2.1.5 -> 2.1.6]
 - org.koin:koin-androidx-viewmodel [2.1.5 -> 2.1.6]
 - org.koin:koin-core [2.1.5 -> 2.1.6]

Gradle release-candidate updates:
 - Gradle: [6.1.1 -> 6.5.1]
### 小米便签功能的开发与集成 #### 创建新项目并设置环境 为了在 Android Studio 中创建一个新的项目来开发或集成小米便签的功能,需启动 Android Studio 并选择 "Start a new Android Studio project". 输入项目的名称,并确保选择了合适的模板。对于本案例而言,“Empty Activity” 是一个不错的选择。 #### 添加依赖项 要使应用程序能够访问特定的小米服务或库,在 `build.gradle` 文件中添加必要的依赖关系至关重要。如果遇到类似于 “Could not find com.android.tools.build:***” 的错误,则可能是由于 Gradle 配置不当所致[^1]。应确认已正确设置了 Google 和 JCenter 仓库: ```gradle repositories { google() jcenter() // 或者 mavenCentral(), 取决于具体需求 } ``` 同时也要注意检查所使用的插件版本是否兼容当前的 Android SDK 版本。 #### 导入现有代码 当把现有的 note 源码导入到 Android Studio 时,可能会面临一些挑战。这通常涉及到解决编译器报错以及调整构建脚本来适应新的 IDE 设置。务必仔细阅读官方文档中的迁移指南部分,以了解任何可能影响移植过程的关键更改。 #### 提升编程技能的应用实践 在整个过程中,开发者可以利用此机会提升自身的 Java 编程能力和安卓平台上的实践经验。特别是针对文件 I/O 处理、安全机制(如加密/解密)、还有图形界面的设计等方面会有更深入的理解和掌握[^2]。 #### 实现核心业务逻辑 关于如何实际编写用于读取、写入笔记数据的核心函数,这里提供了一个简单的例子作为起点: ```java public class NoteManager { private static final String FILE_NAME = "notes.txt"; public void saveNote(String content) throws IOException { FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); fos.write(content.getBytes()); fos.close(); } public String loadNotes() throws IOException { FileInputStream fis = openFileInput(FILE_NAME); StringBuilder sb = new StringBuilder(); int i; while ((i = fis.read()) != -1){ sb.append((char)i); } fis.close(); return sb.toString(); } } ``` 这段代码展示了基本的操作方式——保存字符串形式的内容至内部存储区,并从中加载这些记录下来的信息。当然,真实世界里的应用会更加复杂,涉及数据库交互或其他持久化方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值