信息发布→ 登录 注册 退出

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

发布时间:2026-01-11

点击量:
目录
  • 一 概述
  • 二 错误类
    • 2.1 Cannot inline bytecode built with JVM target 1.8
    • 2.2 Unable to find EOCD signature
    • 2.3 failed to read PNG signature: file does not start with PNG signature
    • 2.4 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8
  • 三 警告类
    • 3.1 The ‘kotlin-android-extensions’ Gradle plugin is deprecated
    • 3.2 Warning: Mapping new ns xx/common/02 to old ns xx/common/01
  • 四 工具类
    • 4.1 Task list not build
  • 总结

    一 概述

    开发工具升级,依赖库,运行环境(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同步一下项目

    总结

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!