Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用.aar文件时出现NoClassDefFoundError_Android - Fatal编程技术网

Android 使用.aar文件时出现NoClassDefFoundError

Android 使用.aar文件时出现NoClassDefFoundError,android,Android,我有一个.aar文件,我把它添加到libs文件夹中,在gradle中我有 compile(name:'file-name', ext:'aar') 它编译得很好,但当我运行它时,我得到: System.err: java.lang.NoClassDefFoundError: com.app.foo.MUtil$3 现在,这个多类用于.aar库的API方法中我在我的应用程序中使用。我可以在分解的aar文件夹中看到MUtil类,我甚至可以通过按住ctrl键并单击其用法来访问该类。但是仍然NoCl

我有一个.aar文件,我把它添加到libs文件夹中,在gradle中我有

compile(name:'file-name', ext:'aar')
它编译得很好,但当我运行它时,我得到:

System.err: java.lang.NoClassDefFoundError: com.app.foo.MUtil$3
现在,这个多类用于.aar库的API方法中我在我的应用程序中使用。我可以在分解的aar文件夹中看到MUtil类,我甚至可以通过按住ctrl键并单击其用法来访问该类。但是仍然
NoClassDefFoundError
。为什么?

渐变文件

apply plugin: 'com.android.application'
apply plugin: 'maven'
apply plugin: 'com.neenbedankt.android-apt'

repositories {
    mavenCentral()
    maven { url 'https://clojars.org/repo/' }
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }

    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
    productFlavors {
    }

    lintOptions {
        abortOnError false
    }
}

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:cardview-v7:23.0.+'
    compile 'com.android.support:recyclerview-v7:23.0.+'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile('xx.xxx.xxxx:xx-xxx:0.1.2@aar') {
        transitive = true
    }
}

task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) {
    gradleVersion = '2.5'
}

在运行时中的类定义不可用时引发

最后

根据Javadoc,在链接或 类文件的加载。它由java.lang.NoClassDefFoundError表示 当特定类在编译时出现时出现 但有些在运行时不可用

您可以共享您的build.gradle
aar
文件的最常见错误

清理重建重新启动同步&重试

编辑

  buildToolsVersion "23.0.1"

验证应用程序的类路径中是否包含所有必需的Java类
如何?我加了渐变code@Housefly当我包含一个库时,我遇到了这个问题,但它需要一些其他包(例如,它需要
gson
库)。我不知道,因为它没有写在文档中,但我问了开发人员,他们告诉了我me@Housefly设置看起来很完美。您能提供xx.xxx.xxxx:xx xxx??它的秘密?@IntelliJAmiya是的,API只是为我们提供的,仍然处于alpha阶段。@Nikola看起来这就是问题所在。我只是看了一下MUtil类的导入是否有遗漏的东西。所以我把它们也加入了我的渐变中。但在理想情况下,我必须将所有依赖项添加到gradle?这可能是因为没有定义正确的proguardrules@thepoosh但我不认为Proguard在调试方面更有效,因为我启用了
minifyEnabled false
,即使是在发布时也是如此
  buildToolsVersion "23.0.1"