我正在尝试在我的android项目中使用自定义aar。我在StackOverflow和Web中找到了许多示例。许多构建失败,没有一个起作用。最清楚的是
http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/
那最接近工作了。
这就是我所做的
成功地从Ref.java创建了一个非常简单的AAR(Ref.aar)
// Ref.java
package com.ramrod.Ref;
public class Ref {
// Square an integer
public static int
square(int val) {
return (val * val);
}
}
创建一个测试项目(RefTest)
修改后的build.gradle
// build.gradle (Module: app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.ramrod.RefTest"
minSdkVersion 11
targetSdkVersion 15
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile( name:'Ref', ext:'aar' )
}
}
在RefTest主要活动的onCreate中添加了对Ref.aar方法(正方形)的引用。
int sq = Ref.square( 2 );
构建->清理,然后构建->重建。
产生错误:找不到符号变量Ref
我确定我只是在做些天真或愚蠢的事,但我看不到。
任何帮助表示赞赏。
答案 0 :(得分:7)
您应该:
1)创建aar
库并将其放在libs
目录中(不“ File-> New-> New Module-> Import .JAR / .AAR包“)
2)添加到build.gradle(模块:应用)
dependencies {
...
implementation fileTree(include: ['*.aar'], dir: 'libs')
...
}
之后,您可以使用Ref.square(int);
构建后您的APK将包含:
答案 1 :(得分:2)
使用“导入aar / jar”选项从内置帮助工具中导入AAR时, 工作室使用此aar创建模块。
因此,在此状态下,您会看到与下面提到的状态类似的内容。 如果显示面板是Android,
将面板模式更改为Project并打开testaar,您实际上可以看到模块和相应aar的build.gradle文件。
这就是为什么您的声明
compile( name:'Ref', ext:'aar' )
无法正常工作。
要将此aar添加到您的项目中(使用import aar / jar之后),您可以做的是先将模块添加到settings.gradle(项目设置文件)
include ':app', ':testaar'
然后直接将其添加到您的应用程序级别的build.gradle文件
implementation project(':testaar')
2)另一种方法是
右键单击您的应用程序模块->选择打开模块设置->选择模块->转到依赖项标签
P.S,您还可以从Build-> Edit Libraries and Dependencies打开此窗口
您将遇到如下窗口
点击小号+图标,然后点击“模块”选项,最后添加所需的模块(测试版)
同步您的代码,瞧,它将立即开始工作。