安卓开发中遇到的一些错误、异常

本文汇总了Android开发过程中常见的19个问题及其解决方案,包括编译错误、运行时异常、模拟器配置、依赖冲突等,旨在帮助开发者快速定位并解决实际开发中遇到的技术难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时常会遇到一些重复的错误,并且还要多次搜索,所以整理一下。方便别人方便自己。

 

1.java.lang.NoClassDefFoundError: retrofit2.Retrofit$Builder

修改黄油刀版本号

 

2.Error:java.lang.NullPointerException (no error message)

删除.gradle文件(不是build.gradle文件)然后rebuild。

 

3.Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_45\bin\java.exe'' finished with non-zero exit value 1

大体是因为引用了重复的包,或者65536。商家版记得删过一次。哪个不确定,出不了v7、v4。依据:到library时各种问题

添加了

multiDexEnabled true

就这次来说

dexOptions {

        preDexLibraries = false

        javaMaxHeapSize "4g"

    }

这个解决了问题。

 

4.运行报如下错误:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/http/ConnectionClosedException.class

 

5.空间不足

 

6.ADB问题

Studio: No Debuggable Applications 程序连不上

     Studio内Tools-->Android-->Enable ADB Integration

 

7.调试接口时,返回html什么的,通常是接口不对。这里的问题是https写成了http谨记!

8.Studio运行问题

  Error(1,0)Cause:com/android/bulid/gradle/LibtraryPlugin:Unsupported major .minor version 52.0

  这个问题是因为Studio选择的版本和本地版本比较太高了,在项目下的build.gradle修改,不是app下的,那里没有android.tools

 

9.项目运行报错

  Error running app

  This Version of Android Studio is incompatible with the Gradle Plugin used.Try disabling Instant Run (or updating either the IDE or the Gradle plugin to the last Version)

  版本不相容,clearn一下搞定了。

 

10.电脑断电后,启动Studio,项目类报错。

   File-->Invalidata Caches/Restart-->Invalidata and Restart

 

11.ScrollView设置OnTouchListener后不能滑动。

   因为OnTouchListener优先级比OnTuochEvevt高,而所有的click事件都基于OnTouchEvent。如果return true,事件就会截断,不走OnTouchEvent,反之false就行。

   另外,OnScrollChanged只能监听界面的滑动的行为,不能监听手势!

 

12.IllegalStateException:非法状态异常

   The application`s PagerAdapter changed the adapter`s contents without calling PagerAdapter#notifyDataSetChanged!

   Expected adapter item count: 300, found:0 Pager id:com.txunda.user.sgg:id/cbLoopViewPager Pager class: class com.bigkoo.convenientbanner.view

   .CBLoopViewPager Problematic adapter: class com.bigkoo.convenientbanner.adapter.CBPageAdapter

   什么在没有通知的情况下修改了内容,这是轮播图的适配器

 

13.无法打开模拟机。

首先打开SDK Manager看看有没有下载,没有的话直接下载。下载后运行安装一下,这里可能会有一个Enable的问题导致运行失败。此时需要进BIOS设置,联想Z510Win10系统进BIOS是关机状态按一键还原按钮(先别担心),之后选“BIOS SETUP”回车,找到configurations 它底部有intel virtuallization ... 是Disable的,移过去按回车,选Enable。之后按F10(屏幕右下角的“保存和退出”),再开机即可。

 

14. This support library should not use a different version (23) than the compileSdkVersion (24)

很显然看这张:

把依赖的版本号修改为24的就行了。

当然我这样直接改比较粗暴,还需要细细的调,不过大体思路差不多是这样。

 

15.Android Studio 3.0添加注解框架时需要和Studio打个招呼,否则会报这个错:

The following dependencies on the compile classpath are found to contain ann...

具体见这篇文章,补充下:这个声明是闺女属性的,谁用到她声明到谁那,和谁添加她关系不大。谁指module。

 

16.Android Studio修改APP的iocn无效的探索

    情景:之前用默认图标,改成新图标时本以为是件小事,谁知运行后没变化。于是

    删除ic_launcher运行--不变

    删除app运行-------不变

    clear Project运行---不变

    那这个问题就有意思了,百度+谷歌后发现一条比较有价值的文章(谷歌搜出的有效结果确实比百度多很多)

    https://blog.youkuaiyun.com/wolfking0608/article/details/78875493

    文章里提到“在手机设置里清除缓存数据”,灵光一闪:也许是手机本身的的缓存。打开设置进入应用程序管理/按功能键查看手机上最近打开的应用,发现icon是已经改了的(我就不上图了)。所以问题基本可以确定是手机了。

所以现在的问题变成了:app应用列表图标和桌面图标不一致问题,换言之是桌面图标不更新问题。参考这篇文章:

https://blog.youkuaiyun.com/ImSeekbar/article/details/43308741

点击卸载--重启手机--运行--不变。。。

那我就要祭出杀招了:我修改了签名文件,然后卸载,安装--成了(大家好,我是华为!)。

你大爷的vivo!!

经过若干次心 平 气 和的清除缓存--清除数据--卸载--运行,vivo终于也恢复了正常。

 

17.高德添加jar包后要在其上右键“add as library”才行。

 

18.异常:Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details.

我这里是想打包relase版apk,然后脑袋一热把app外的其他Moudle的混淆也设置成了true:

minifyEnabled true

然后就这样了,改回来就好了(当时真吓一跳)。

 

19.依赖最新版butterknife的问题

添加依赖:

implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
报错:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:36:5-364:19 to override.
在清单文件的application目录下添加完 tools:replace="android:appComponentFactory"还要在加一句:android:appComponentFactory="任意字符"

然后报错:

More than one file was found with OS independent path 'META-INF/androidx.core_core.version'
在app的gradle中添加
packagingOptions {exclude 'META-INF/androidx.core_core.version'}

然后继续报这个错,只是地址变了。试了几次,故怀疑是某个家伙重复了,这样走下去只怕思路错了。

然后回到最初的报错,认真搜索,终于找到了。参考网址:https://www.jianshu.com/p/f7a7a8765294

原因是androidx库和androidsupport库不共存,而最新的butterknife应该是依赖了androidx,回滚8.8.1版本,运行正常。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值