当我尝试在其他项目中使用导出的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'
}
}
最佳答案
问题是,aar文件不包含嵌套依赖项,并且没有描述库使用的依赖项的POM文件.
原文链接:https://www.f2er.com/android/431334.html如果要使用flatDir repo导入aar文件,则还必须在项目中指定依赖项.你应该使用maven存储库!例如:maven-publish
一个更简单的解决方案是,将以下行添加到“aar”项目中的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")
}