未找到Android studio aar文件错误类

时间:2015-09-20 13:45:57

标签: android android-studio aar

当我尝试在其他项目中使用导出的android库项目(aar格式)时。我收到以下错误。

> "Could not find class 'com.manish.core.helper.RegistrationHelper$1'" 
> "Could not find class 'com.manish.core.helper.RegistrationHelper$2'"
> "Could not find class 'com.manish.core.helper.RegistrationHelper$3'"
> "Could not find class 'com.manish.core.helper.RegistrationHelper$4'"

在aar文件中有一个文件" classes.jar",它包含所有类文件,但我不明白错误的原因。

我正在使用android studio在build目录中生成的aar文件。 我还在gradle文件中添加了apply plugin: 'com.android.library'

所有这些错误仅适用于匿名和静态类。

我的gradle文件:

apply plugin: 'com.manish.application'

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "com.manish.test"
        minSdkVersion 10
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    mavenCentral()
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'junit:junit:4.12'
    compile(name:'somerandomlibrary-debug', ext:'aar')
}

repositories{
    flatDir{
        dirs 'libs'
    }
}

2 个答案:

答案 0 :(得分:5)

问题是, aar文件不包含嵌套依赖项,并且没有 POM 文件,该文件描述了所使用的依赖关系图书馆。

如果要使用flatDir repo导入 aar文件,则还必须在项目中指定依赖项。您应该使用 maven存储库!例如:maven-publish

更简单的解决方案是,将以下行添加到" aar" -project中的build.gradle:

task createPom {
    apply plugin: 'maven'
    description "Generates pom.xml"
    pom {
        project {
            groupId 'com.example'
            artifactId 'example'
            version '0.0.1-SNAPSHOT'
            packaging 'aar'
        }
    }.withXml {
        def dependenciesNode = asNode().appendNode('dependencies')

        configurations.compile.allDependencies.each { dependency ->
            def dependencyNode = dependenciesNode.appendNode('dependency')
            dependencyNode.appendNode('groupId', dependency.group)
            dependencyNode.appendNode('artifactId', dependency.name)
            dependencyNode.appendNode('version', dependency.version)
        }
    }.writeTo("$buildDir/pom.xml")
}

您可以在基于 aar 的应用中使用生成的 POM 文件进行依赖注入。

答案 1 :(得分:0)

这不是一个好习惯,但如果你真的需要它,你可以使用Issuer OpenDate CloseDate AverageNAV :------|-----------|-----------|----------: Issuer A 2/4/2015 11/9/2016 28234164 Issuer B 2/6/2015 5/19/2017 30446780 Issuer C 11/19/2015 10/11/2016 35789424 ,就像这样

nested dependencies