Android问题集锦

记录Android开发中遇到的问题

repository ‘Gradle Libs‘ was added by unknown code

settings.gradle中,去除repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

dependencyResolutionManagement {
    // repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

原帖

gradle 编译报错Manifest merger failed with multiple errors

原因
由于多个module合并AndroidManifest.xml导致,一般是由于没有设置android:exported属性

解决
1、自己项目的问题,通过AndroidManifest.xml的uses-permission功能查看未设置exported的
2、第三方依赖的问题,我是通过注释第三方依赖查找出来有问题的依赖,查到问题的配置地方
在这里插入图片描述

用下面配置修复

  		<!--以下:android 12 加入exported-->
        <!--com.umeng.umsdk:vivo-umengaccs:1.1.6-->
        <receiver
            android:name="org.android.agoo.vivo.PushMessageReceiverImpl"
            android:exported="false"
            tools:node="merge" />
        <!--com.umeng.umsdk:oppo-push:3.0.0,com.umeng.umsdk:oppo-umengaccs:1.0.8-fix-->
        <service
            android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"
            android:exported="false"
            tools:node="merge" />
        <service
            android:name="com.heytap.msp.push.service.DataMessageCallbackService"
            android:exported="false"
            tools:node="merge" />

注意
等以后依赖升级后,若第三方依赖的新版本加入了exported,记得再去掉此处配置,否则也会爆merger failed

gradle编译报错StackOverflowError

升级gradle-7.3.3后,编译报错

java.lang.StackOverflowError
	at com.google.common.collect.AbstractMapEntry.hashCode(AbstractMapEntry.java:56)
	at com.google.common.collect.Sets.hashCodeImpl(Sets.java:1712)
	at com.google.common.collect.ImmutableMap.hashCode(ImmutableMap.java:873)
	at com.android.build.gradle.internal.ide.dependencies.ResolvedArtifact.hashCode(ResolvedArtifact.kt)
	at com.android.build.gradle.internal.ide.dependencies.LibraryServiceImpl.getLibrary(LibraryService.kt:116)
	at com.android.build.gradle.internal.ide.dependencies.FullDependencyGraphBuilder.handleDependency(FullDependencyGraphBuilder.kt:187)

原因:
由于项目中用到了Umeng Push,里面的华为包导致

	implementation 'com.huawei.hms:push:5.3.0.304'
	implementation 'com.umeng.umsdk:huawei-umengaccs:1.3.5'

解决
需要升级到新版

    implementation 'com.huawei.hms:push:6.3.0.302'
    implementation 'com.umeng.umsdk:huawei-umengaccs:1.3.7'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android面试问题可以包括以下几个方面: 1. Android基础知识:这包括对Android操作系统的理解,四大组件(活动、服务、内容提供者、广播接收器)的使用和生命周期等等。 2. Java编程:Android开发主要使用Java语言,因此对Java语法、OOP(面向对象编程)的理解和Java常用类的使用都是必备的。 3. 布局和界面:Android应用开发离不开界面的设计和布局,对常用布局(如线性布局、相对布局、帧布局)和控件的使用熟练掌握是重要的。 4. 数据存储和管理:了解Android中数据的存储方式,如使用SQLite数据库、SharedPreferences等进行本地数据存储,也要了解网络数据的请求和处理。 5. 多线程和异步编程:对于Android应用来说,处理耗时任务需使用多线程或异步编程方式,了解如何使用AsyncTask、Handler等组件来实现多线程操作是必要的。 6. 性能优化和内存管理:在开发Android应用时,需要对应用的性能进行优化,理解内存泄漏的原因,掌握使用Android Profiler等工具进行性能分析和调优。 7. 第三方库和框架:熟悉常用的Android第三方库和框架(如Retrofit、Glide、ButterKnife),了解它们的用途和基本使用方法。 8. 安全性:了解Android应用开发中的安全性问题,如如何保护用户数据、防止恶意攻击等。 9. 版本控制工具:熟悉使用Git等版本控制工具进行代码管理和团队协作。 10. 实际项目经验:面试官可能会问到你在之前的实际项目中遇到的问题和解决方案,以及你的贡献和角色等。 回答这些问题时,建议结合自己的实际经验和项目经历进行回答,展示自己的能力和对Android开发的理解。 ### 回答2: 在Google的Android面试中,可能会遇到以下问题: 1. 请介绍一下Android平台的架构。 Android平台的架构由Linux内核、硬件驱动、运行时库、应用框架和应用组成。Linux内核是底层硬件控制的核心,硬件驱动提供了与硬件交互的接口,运行时库包括了核心库和C/C++库,应用框架提供了开发应用程序的API接口,应用则是用户使用的应用程序。 2. 请介绍一下Android的四大组件。 Android的四大组件包括Activity、Service、Broadcast Receiver和Content Provider。Activity负责提供用户界面,Service负责后台执行长时间运行的任务,Broadcast Receiver负责接收和处理系统广播消息,Content Provider负责数据共享和存取。 3. 请介绍一下Activity的生命周期。 Activity的生命周期包括onCreate、onStart、onResume、onPause、onStop、onDestroy等方法。当Activity被创建时会调用onCreate方法,当其可见但还无法与用户交互时会调用onStart和onResume方法,当其失去焦点但未被销毁时会调用onPause方法,当其完全不可见时会调用onStop方法,当Activity被销毁时会调用onDestroy方法。 4. 请介绍一下Android的布局文件和代码文件。 Android的布局文件使用XML语言编写,用于定义应用界面的组件和布局方式。代码文件用于处理布局文件中的组件的行为,包括点击事件、数据绑定等逻辑。 5. 请介绍一下Android的Intent。 Intent是Android中用于传递消息和执行动作的对象。它可以用于启动Activity、Service和Broadcast Receiver,也可以用于发送和接收数据。通过Intent,可以在不同的组件之间传递数据和通信。 总结: Android面试中,会涉及到Android平台的架构、四大组件、Activity的生命周期、布局文件和代码文件的概念以及Intent的使用。准备这些内容,能够更好地回答面试官的问题,展示自己的Android开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值