Android 如何使用 Android Studio 和 gradle 创建包含 Altbeacon 库的库(jar)
Posted
技术标签:
【中文标题】Android 如何使用 Android Studio 和 gradle 创建包含 Altbeacon 库的库(jar)【英文标题】:Android how to create library (jar) containing Altbeacon library with Android studio and gradle 【发布时间】:2015-09-17 07:14:33 【问题描述】:我是 android 的新手,尤其是 libs。
我使用的是 Android Studio 1.2.2
我正在尝试创建一个没有使用 AltBeacon 库的活动、资源等(只有代码)的 jar 库。完成后,我想将此 jar 包含在我的 APP 中,该 APP 必须通过我的 lib 使用信标。
好吧,使用 AltBeacon 指令,我可以使用 AltBeacon 库将 gradle 配置为具有“正常”(带有活动等)应用程序。但我无法创建一个包含 AltBeacon 的 jar 库。 我用谷歌搜索了很多,特别是在 SO,我发现了很多关于“图书馆内图书馆”的问题,但这对我不起作用。
我做了这个:
我使用 Studio 创建了一个空项目(空白活动) 然后我创建了一个新模块 -> Java 库并将其命名为 libmebeaconmanager,Studio 创建了一个新的 Java 类,我将其命名为 MeBeaconManager我是这样修改库的build.gradle的:
应用插件:'java'
依赖 编译 fileTree(dir: 'libs', include: ['*.jar']) 编译'org.altbeacon:android-beacon-library:2+'
这是 Module:app: 的 build.gradle
apply plugin: 'com.android.application'
android
compileSdkVersion 22
buildToolsVersion "23.0.0 rc2"
defaultConfig
applicationId "me.padovame.libbeacontest"
minSdkVersion 18
targetSdkVersion 22
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:22.2.0'
这是项目的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.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
jcenter()
此时,在 lib 的 MeBeaconManager 类中,我尝试导入 AltBeacon 类但没有成功,因为导入行出现未定义符号错误,如下所示:
导入 org.altbeacon.beacon.Beacon;
我也尝试过将下载的android-beacon-library-2.3.aar插入到libmebeaconmanager的lib文件夹中
我做错了什么?
提前致谢。
编辑: 我试图在我的 libmebeaconmanager 中包含一个 jar(用 Picasso 尝试过)库并且它有效。所以问题似乎出在 aar 库上。
我要疯了……
编辑 2: 我从 AltBeacon aar 库中提取了 classes.jar 并将其用作其他 jar 并且它有效。
但我认为这是一种解决方法:我仍然不明白如何直接管理 aar 文件。所以感谢谁能帮助我。
【问题讨论】:
Android Library Gradle release JAR 的可能重复项 我认为这不是重复的。我需要在我的库中包含一个 aar 库 【参考方案1】:似乎在将库插入项目结构时出现问题
您可以在此处查看用户 Sam Rad 提供的答案:How do I add a library project to Android Studio?
【讨论】:
不幸的是,导入模块选项在 Android Studio 中不再可用......并且该帖子用于将库添加到项目,而不是用于将库添加到库 关于@maxbeltra,我不知道您使用的是哪个版本的android studio。但我使用的是 Android Studio 1.0.1,并且有这种支持,实际上据我所知,这种支持是在 Studio 0.53 之后启用的 我使用的是 Android Studio 1.2.2 导入模块现在需要一个目录,而不是 aar 文件。我也尝试了新模块-> 添加现有的 aar/JAR。我给出了 albeacon aar lib 的路径,它以这种方式修改了 lib 的 build.gradle:dependencies compile fileTree(include: ['*.aar'], dir: 'libs') // compile 'org.altbeacon :android-beacon-library:2+@aar' compile project(':android-beacon-library-2.3') 但我得到了同样的错误以上是关于Android 如何使用 Android Studio 和 gradle 创建包含 Altbeacon 库的库(jar)的主要内容,如果未能解决你的问题,请参考以下文章
Android jetpack room+ViewModel+liveData 数据自动更新
android createTempFile 抛出权限被拒绝?