Android开发中的错误及解决办法总结

 更新时间:2022年02月17日 10:13:15   作者:PGzxc  
本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,需要的朋友可以参考下

一 概述

开发工具升级,依赖库,运行环境(jdk)等都会造成项目运行出现错误

掌握开发中常见错误现象和问题及解决办法,能节省时间

本文将不定期更新

二 错误类

2.1 Cannot inline bytecode built with JVM target 1.8

现象

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target

解决方案

android {
    ...
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
 
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

2.2 Unable to find EOCD signature

现象1

Execution failed for task ':app:packagexxxxRelease'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Unable to find EOCD signature

现象2

Execution failed for task ':app:packageGame_ZHRelease'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > java.lang.IllegalArgumentException (no error message)

原因

依赖中添加了有关ABI相关的配置,打包输出时,未指定ABI版本

解决办法(添加ABI输出)

import com.android.build.OutputFile

static def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+8"))
}
buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.all { output ->
                    project.ext { appName = 'YourApkName' }
                    outputFileName = "${appName}-${output.getFilter(OutputFile.ABI)}-${variant.name}-${variant.versionName}.apk"
                }
            }
        }
    }

2.3 failed to read PNG signature: file does not start with PNG signature

现象

AAPT: error: failed to read PNG signature: file does not start with PNG signature.

解决办法

在app/build.gradle文件中加以下代码后,重构项目

android {
    compileSdkVersion 28
    flavorDimensions "mode"
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    defaultConfig {
    
    }

2.4 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

现象(项目创建时)

An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

解决办法

依次点击:File——>Project Struct——>SDK Location——>JDK location was moved to Gradle Settings,在打开的对话框中,将Gradle JDK修改为11

三 警告类

3.1 The ‘kotlin-android-extensions’ Gradle plugin is deprecated

现象

The 'kotlin-android-extensions' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the 'kotlin-parcelize' plugin.

解决办法

删除 apply plugin: 'kotlin-android-extensions'
使用binding赋值
binding.name.text = viewModel.nameString

3.2 Warning: Mapping new ns xx/common/02 to old ns xx/common/01

现象

Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01

解决办法(buildToolsVersion引起-修改前)

compileSdkVersion 30
buildToolsVersion "30.0.3"

去掉buildToolsVersion或将buildToolsVersion版本降低

compileSdkVersion 30
buildToolsVersion "30.0.2"

四 工具类

4.1 Task list not build

现象

解决办法

  1. 点击Task list not build,进入Settings——>Experimental,将Do not build Gradle task list duraing Gradle sync前面的勾选去掉,并应用
  2. 点击Sync Project with Gradle Files同步一下项目

总结

到此这篇关于Android开发中的错误及解决办法的文章就介绍到这了,更多相关Android开发错误及解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android开发常用经典代码段集锦

    Android开发常用经典代码段集锦

    这篇文章主要介绍了Android开发常用经典代码段,涉及Android开发过程中针对手机、联系人、图片、存储卡等的相关操作技巧,非常简单实用,需要的朋友可以参考下
    2016-02-02
  • Android优雅地处理按钮重复点击的几种方法

    Android优雅地处理按钮重复点击的几种方法

    这篇文章主要介绍了Android优雅地处理按钮重复点击的几种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 安卓Android6.0权限动态获取操作示例

    安卓Android6.0权限动态获取操作示例

    这篇文章主要介绍了安卓Android6.0权限动态获取操作,结合实例形式分析了Android6.0针对权限的动态获取、授权等相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • MVVMLight项目之双向数据绑定

    MVVMLight项目之双向数据绑定

    这篇文章主要介绍了MVVMLight项目中双向数据绑定的示例源码及实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步除夕快乐,新年快乐
    2022-01-01
  • Android studio实现简单的计算器

    Android studio实现简单的计算器

    这篇文章主要为大家详细介绍了Android studio实现简单的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Android通过手势实现答题器翻页效果

    Android通过手势实现答题器翻页效果

    这篇文章主要为大家详细介绍了Android通过手势实现答题器翻页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android 设置颜色的方法总结

    Android 设置颜色的方法总结

    这篇文章主要介绍了Android 设置颜色的方法总结的相关资料,希望通过本文能帮助到大家,让大家掌握设置颜色的方法,需要的朋友可以参考下
    2017-09-09
  • Android开发之Kotlin委托的原理与使用详解

    Android开发之Kotlin委托的原理与使用详解

    我们常用的委托模式怎么使用?在 Java 语言中需要我们手动的实现,而在 Kotlin 语言中直接通过关键字 by 就可以实现委托,下面我们就一起看看不同种类的委托使用以及在 Android 常见的一些场景中的使用
    2023-03-03
  • 解决Android 5.1限制外置SD卡写入权限的问题

    解决Android 5.1限制外置SD卡写入权限的问题

    今天小编就为大家分享一篇解决Android 5.1限制外置SD卡写入权限的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android动态权限申请实现步骤分解

    Android动态权限申请实现步骤分解

    对于一些危险权限在AndroidManifest清单文件中申请之后,还需要得到用户的许可并打开,才算是真正的开启了这个权限。所以可以使用动态申请权限,对于某个功能,如果需要开启某个权限,在用户使用它之前,弹窗提示用户是否要开启这个权限
    2023-04-04

最新评论