如何在 Android Studio 项目中添加和使用 AAR
How to Add and Use an AAR in AndroidStudio Project
我正在尝试在我的 android 项目中使用自定义 aar。我在 Whosebug 和 Web 中找到了数十个示例。许多构建失败,none 工作。最清楚的是
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)
- 在 RefTest/app
下创建了文件夹 'libs'
- 已将 Ref.aar 添加到库
- 文件->新建->新建模块->导入.JAR/.AAR包。
- 选择 Ref.jar 作为文件名->完成(显示成功)。
已修改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' )
}
}
- 同步build.gradle(全部)
在 RefTest main activity 的 onCreate 中添加了对 Ref.aar 方法(正方形)的引用。
int sq = Ref.square( 2 );
构建->清理然后构建->重建。
这产生了 错误:找不到符号变量 Ref
我确定我在做一些幼稚或愚蠢的事情,但我看不到。
任何帮助表示赞赏。
你应该:
1) 创建 aar
库并将其放在 libs
目录中 ( without "File->New->New Module->Import .JAR/.AAR Package" )
2) 添加到 build.gradle(模块:app)
dependencies {
...
implementation fileTree(include: ['*.aar'], dir: 'libs')
...
}
之后就可以使用Ref.square(int);
构建后您的 apk 将包含:
当您使用导入 aar/jar 选项从内置帮助工具导入 AAR 时,
studio 使用此 aar 创建一个模块。
所以在这个状态下你可以看到类似于下面提到的状态的东西。
当显示面板为Android、
时
将你的面板模式更改为项目并打开你的 testaar ,你实际上可以看到你的模块的 build.gradle 文件和相应的 aar。
这就是为什么你的声明
compile( name:'Ref', ext:'aar' )
没有工作。
要将此 aar 添加到您的项目中(在使用 import aar/jar 之后),您可以先将模块添加到 settings.gradle(项目设置文件)
include ':app', ':testaar'
然后直接添加到你的应用层build.gradle文件
implementation project(':testaar')
2)另一种方法是
右键单击您的应用程序模块 ->Select 打开模块设置 -> Select 模块 -> 转到依赖项选项卡
P.S 你也可以从 Build->Edit Libraries and Dependencies
打开这个 window
你会遇到一个window如下
点击小+图标,然后点击Module选项,最后添加需要的模块(testaar)
同步您的代码,瞧,它现在将开始工作。
我正在尝试在我的 android 项目中使用自定义 aar。我在 Whosebug 和 Web 中找到了数十个示例。许多构建失败,none 工作。最清楚的是
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)
- 在 RefTest/app 下创建了文件夹 'libs'
- 已将 Ref.aar 添加到库
- 文件->新建->新建模块->导入.JAR/.AAR包。
- 选择 Ref.jar 作为文件名->完成(显示成功)。
已修改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' ) } }
- 同步build.gradle(全部)
在 RefTest main activity 的 onCreate 中添加了对 Ref.aar 方法(正方形)的引用。
int sq = Ref.square( 2 );
构建->清理然后构建->重建。
这产生了 错误:找不到符号变量 Ref
我确定我在做一些幼稚或愚蠢的事情,但我看不到。
任何帮助表示赞赏。
你应该:
1) 创建 aar
库并将其放在 libs
目录中 ( without "File->New->New Module->Import .JAR/.AAR Package" )
2) 添加到 build.gradle(模块:app)
dependencies {
...
implementation fileTree(include: ['*.aar'], dir: 'libs')
...
}
之后就可以使用Ref.square(int);
构建后您的 apk 将包含:
当您使用导入 aar/jar 选项从内置帮助工具导入 AAR 时, studio 使用此 aar 创建一个模块。
所以在这个状态下你可以看到类似于下面提到的状态的东西。 当显示面板为Android、
时将你的面板模式更改为项目并打开你的 testaar ,你实际上可以看到你的模块的 build.gradle 文件和相应的 aar。
这就是为什么你的声明
compile( name:'Ref', ext:'aar' )
没有工作。
要将此 aar 添加到您的项目中(在使用 import aar/jar 之后),您可以先将模块添加到 settings.gradle(项目设置文件)
include ':app', ':testaar'
然后直接添加到你的应用层build.gradle文件
implementation project(':testaar')
2)另一种方法是
右键单击您的应用程序模块 ->Select 打开模块设置 -> Select 模块 -> 转到依赖项选项卡
P.S 你也可以从 Build->Edit Libraries and Dependencies
打开这个 window你会遇到一个window如下
点击小+图标,然后点击Module选项,最后添加需要的模块(testaar)
同步您的代码,瞧,它现在将开始工作。