我正在尝试在我的 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)
- 在 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 主 Activity 的 onCreate 中添加了对 Ref.aar 方法(正方形)的引用。
int sq = Ref.square( 2 );
构建->清理然后构建->重建。
这产生了错误:找不到符号变量 Ref
我确定我在做一些天真或愚蠢的事情,但我看不到。
任何帮助表示赞赏。
最佳答案
你应该:
1) 创建aar
库并将其放在libs
目录中( without "File->New->New Module->Import .JAR/.AAR 包")
2) 添加到build.gradle (Module: app)
dependencies {
...
implementation fileTree(include: ['*.aar'], dir: 'libs')
...
}
之后你可以使用 Ref.square(int);
构建后您的 apk 将包含:
关于java - 如何在 Android Studio 项目中添加和使用 AAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51141190/