类似问题中的所有答案都谈到了manderally编辑gradle文件。但是我已经使用Android Studio导入AAR文件并检查了build.gradle文件,它们看起来都是正确的。
我的问题是:
我已导入ShowCaseView v5.0.0 AAR,但是当我尝试导入Tutorial.java文件中的类时(您可以看到红色),Android Studio无法识别这些类。 Android Studio识别的唯一导入是com.github.amlcurran.showcaseview.R
。
我也尝试过清洁&重建项目,并关闭&重新打开Android Studio,但它没有帮助。
P.S。请忽略丢失的XML文件,就像我将它们复制到项目之前一样。
ShowCaseView-5.0.0>的build.gradle:
configurations.create("default")
artifacts.add("default", file('ShowCaseView-5.0.0.aar'))
我的应用的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.giraffeweather"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(':ShowCaseView-5.0.0')
}
Android Studio项目的build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
gradle设置文件settings.gradle:
include ':app', ':ShowCaseView-5.0.0'
答案 0 :(得分:3)
最近,我遇到了同样的问题。我有一个AAR导入我的项目。该库仅作为AAR分发 。我通过将我的AAR文件放在libs/
文件夹中并在我的应用程序模块的gradle中添加了以下行来解决它:
dependencies {
...
compile files('libs/theFirstLib.aar')
}
您还可以添加多个AAR:
dependencies {
...
compile files('libs/theFirstLib.aar', 'libs/theSecondLib.aar')
}
如果您使用的是Gradle 3.0.0或更高版本,则可能需要使用compile
替换implementation
:
implementation files('libs/theFirstLib.aar')
像魅力一样工作!
注意:导入AAR有时会导致另一个"无法解析符号"错误,我在Android Studio和Gradle不同意时解决here。
答案 1 :(得分:1)
您需要在项目的build.gradle文件中指定“ShowCaseView-5.0.0.aar”的位置。 E.G,ShowCaseView-5.0.0.aar文件位于项目根目录下名为“libs”的文件夹中,更新build.gradle文件以添加以下内容
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
答案 2 :(得分:-1)
我知道以这种方式导入AAR文件的人几乎为零,我不知道它是否正常工作。你的结果表明它没有。
切换到从Bintray的JCenter中拉出图书馆:
步骤1:将compile project(':ShowCaseView-5.0.0')
替换为compile 'com.github.amlcurran.showcaseview:library:5.0.0'
第2步:从, ':ShowCaseView-5.0.0'
settings.gradle
步骤3:删除ShowCaseView-5.0.0
目录