Android studio 编译报错

2020-02-14  本文已影响0人  狠狠狠努力的疯子

1.问题一:

AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{}],"original":"AAPT: W/ziparchive(10643): Zip: bad offsets (dir 37221899, size 713971, eocd 37935861)\nerror: failed to open APK: Invalid offset.\n\n ","tool":"AAPT"}

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':app:processRomallDebugResources'.

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade

  > Android resource linking failed

    AAPT: W/ziparchive(10643): Zip: bad offsets (dir 37221899, size 713971, eocd 37935861)

    error: failed to open APK: Invalid offset.

问题原因:

项目的资源报错了.

解决方法

在项目的更目录下的build.gradle中加入这段,可以把报错的资源显示出现,然后逐个去解决.

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

2.问题二:

添加系统android.jar有可能出现这个错误;
Execution failed for task ':app:mergeExtDexDebug' 65535
查考这个issues

解决方法

在Module 的 build.gradle中添加这些内容

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

3.问题三:

方法超了 65536

解决方法

在Module 的 build.gradle中添加这些内容

android {
    ...
    defaultConfig {
        ...
        multiDexEnabled true
    }
}
...
dependencies { 
    ...
    compile 'com.android.support:multidex:1.0.1'
 } 

自定义Application并继承MultiDexApplication;
但是如果已经继承了Application,那么也可以通过重写attachBaseContext(Context base)方法

@Override   
protected void attachBaseContext(Context base) {  
    super.attachBaseContext(base);
    MultiDex.install(this);  
}

最后在AndroidManifest.xml里把application改成引用自定义的Application

上一篇 下一篇

猜你喜欢

热点阅读