问题标签 [aar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3545 浏览

android - 在其他项目中使用 .AAR 文件的问题

我必须在另一个项目中使用我的 android 库项目(它有资源)。这是我到目前为止所做的:

  1. 在 Android Studio 中创建了一个库项目。构建该项目,因此生成 .aar 文件,如下所示:..\MyApplication\mylibrary\build\outputs\aar\mylibrary-debug.aar

  2. 在 Android Studio 中创建了一个新的 Android 项目。然后,我遵循了这个

    文件 >> 新模块 >> 导入 .JAR 或 .AAR 包

这为我的项目提供了以下结构:

在此处输入图像描述

gradle sync 或我制作项目时没有任何错误。

但是现在,如果我尝试使用我的库项目的类名,它不会显示在自动建议中。我的图书馆项目中有一个班级MyClass.java。在 IDE 中,如果我尝试编写MyC,我无法看到MyClass. 它显示没有建议

在此处输入图像描述

我错过了一些配置吗?

如果您需要与文件夹结构或文件相关的其他信息,请告诉我build.gradle

0 投票
1 回答
8105 浏览

android - 在 XML 中找不到来自 AAR 的资源标识符

我为应用程序开发了一个自定义首选项。它有两个自定义属性。我正在尝试将 Preference 移至库项目以在其他项目中重用。我移动了 Java 文件以及相应的布局和 attr XML 文件。这是库项目中的 attr 文件:

这是清单:

肯定是一个看起来很奇怪的清单。当我生成库项目时,Android Studio 放入清单中的唯一内容是 SDK 信息,然后生成一个警告,说明它已在 build.gradle 文件中指定,因此我删除了清单中的条目。

我使用 bundleRelease 任务生成 AAR 文件并获得一个名为 androiduilibrary-release.aar 的文件。然后我转到需要使用此 Preference 的项目并选择“New Module | Import .JAR or .AAR Package”,导航到 AAR,它现在作为名为 androiduilibrary-release 的模块在我的项目中。我在 Project Structure 对话框中创建了一个模块依赖项,现在可以在 Java 代码中引用 Preference。到目前为止,一切都很好。

但是,当我尝试在 XML 中引用首选项时,我的自定义属性出现以下错误:“错误:(9) 在包 'com.mydomain.androiduilibrary' 中找不到属性 'minValue' 的资源标识符”。这是 XML:

我可以查看 AAR 内部并看到值填充在 R.txt 中:

并且它的清单正在正确创建:

调用自定义首选项时,我也会收到警告:“此处不允许元素 com.mydomain.androiduilibrary.NumberPickerPreference”,所以我猜这也是一个问题。

有没有我遗漏的步骤可以让我在我的 XML 中引用来自 AAR 的元素?我正在使用 Android Studio 1.0.2。提前致谢。

0 投票
1 回答
596 浏览

java - 如何从多个 java 类(单个包)正确创建/使用 .aar 或 .jar 文件以在 android studio 的不同项目中使用它

我尝试了许多不同的方法,在不同的项目中使用我的库,但在每个项目中我都失败了。

这是我最后一次尝试所做的,

我创建了一个模块/android库

在其中我创建了我的 Java 类(确切地说是 3 个)

这是我的 moduke 的 gradle

而不是我构建了我的应用程序。

在这个位置我发现了我的myLib-debug.aar .aar

我将它添加到我的测试项目中,看看是否可以使用我的类方法,

编译文件('src/main/java/lib/myLib-debug.aar')

我将此添加到我的依赖项中,并且 gradle sync 没有返回任何错误,

当我尝试导入包时;

这是我可以导入的

导入 com.myLib.android.*;

看起来不错,因为我的模块的包名是 com.myLib.android

但是当我尝试访问我的班级方法时,什么也没有出现。

我错过了什么?

0 投票
1 回答
434 浏览

java - 从 Eclipse 消费 aars 不起作用

*这部分是我最初的问题。请阅读更新
我已经在 Eclipse 中导入了一个显然依赖于renwuxian的 android 项目。
由于我找不到 jar 并且不知道该怎么做,所以我按照使用 aars-eclipse中的说明并导入了第二个项目,其中包含来自 aar 的工件作为 android eclipse 项目。

然后在我的布局文件中出现编译错误的原始项目中,com.rengwuxian.materialedittext.MaterialEditText我添加了从 aar 项目中新创建的这个作为参考(项目-> 属性-> 构建路径-> 添加项目)

编译错误已解决!但是在我的布局文件中,现在到处都是定义元素的地方,com.rengwuxian.materialedittext.MaterialEditText我在资源定义中遇到错误。

例如以下:

错误:在包“com.test”中找不到属性“baseColor”的资源标识符

它似乎抱怨的态度是:

---> app:baseColor="@color/text_color"

@color/text_color是在原始应用程序包中的原始应用程序中定义的,显然 aar 导入项目 (com.rengwuxian.materialedittext.MaterialEditText) 中的类无法查看/访问这些资源。

我怎样才能解决这个问题?还是有另一种更好的方法来解决我的问题?

注意:我还尝试将源链接添加到我项目的 res/ 文件夹的文件夹中,但没有解决这个问题。

更新:
我删除了对项目的引用并将 classes.jar 添加到构建路径(这个 jar 在 aar 项目中)。同样的问题

更新 2:
我发现这有助于将 aars 导入 eclipse aar-for-eclipse。我在文件夹中复制/粘贴了代码片段(任务 copyJarDependencies 等),但出现异常:

没有这样的属性:类的 libDir:org.gradle.api.tasks.Copy_Decorated

所以我在 `libDir = new File(project.projectDir, '/libs') 行中添加了一个 def 然后这行得通,但我得到了:

在配置容器上找不到属性“编译”

如何解决这个问题?我不确定要申报什么或缺少什么

更新 3:
我添加apply plugin: 'java'了 compile 属性现在还可以,但我得到:

configuration.releaseCompile.filter {it.name.endsWith 'jar'}.each { 文件文件-> moveJarIntoLibs(file)}

我该如何解决这个问题以使其正常工作?
我正在使用这个项目---> https://github.com/rengwuxian/MaterialEditText
而这篇文章---> http://www.nodeclipse.org/projects/gradle/android/aar-for-Eclipse

0 投票
1 回答
456 浏览

java - 如何编译Android库?

在我的项目中,我使用的是SlidingUpPanel

由于我需要一个功能,我将项目克隆到我的机器上并操作了库。我在它的演示项目上测试了我的功能,基于这个项目一切都很好。

现在,我想编译它的library模块以获取.aar文件并将其添加到我的项目中。我所做的是:

  1. 我打开 cmd 并导航到slidingUpPanel项目的根文件夹。
  2. 运行这个命令:./gradlew :library:build
  3. 库编译和创建 .aar 下/library/build/outputs/aar/library-debug.aar

我将此文件复制/粘贴到/libs我的项目文件夹中并更新build.gradle如下:

同步 gradle 文件后,我收到错误,这是因为SlidingUpPanelLayout无法识别。

知道为什么无法识别图书馆吗?任何想法将不胜感激。谢谢。

0 投票
0 回答
136 浏览

gradle - 如何将库资源链接到 android studio 上同一项目中的库?

我曾尝试制作资源库,但失败了。它在ideaJ(不是gradle项目)和eclipse中运行良好。

例如在 gradle 中,我的应用程序由三部分组成: 1. 主应用程序 2. 库 1 3. 库 2 :资源

当我使用 1 构建 1 + 3 和 3 的资源时效果很好。但是使用 in 2 构建 1 + 2 + 3 和 3 的资源会导致构建崩溃:

错误:包 com.example.kwangjo.mylibrary.R 不存在。

以下是 build.gradle 文件。

0 投票
1 回答
978 浏览

android - 在 Android AAR 库中,我可以公开公共 API 并隐藏实现吗?

这似乎是一个基本问题,但我无法在任何地方找到信息。

我想构建一个公开 API 但隐藏实现的 AAR,以便不会直接调用实现。

除了混淆我想要封装(隐藏)的包之外,我没有看到其他方法。

0 投票
2 回答
22357 浏览

android - 如何使用本地 aar 依赖?

我在谷歌上搜索了本地 aar,每个人都说它可以工作,但它在 android studio 1.1.0 上不起作用。

我尝试使用:

但它提示:

我应该如何使用本地 aar?如果我应该使用:

这个怎么做?

0 投票
5 回答
13023 浏览

android - 排除发布构建类型的资产

我正在使用 gradle 构建的应用程序中导入一个 android 库,如下所示:

该库仅包含要在 webview 中使用的资产、js、css 和图像,其布局如下:

js文件夹包含源文件(与源映射一起使用)。我想包括它和.map调试版本的文件,并且在发布版本中只有缩小的 js,但我找不到这样做的方法。

到目前为止,我已经尝试过: 

知道我想要的是否可以实现,如果可以,如何实现?

(我还考虑过发布两个版本的库(great-liband ),并在andgreat-lib-debug中有依赖关系,但我更愿意避免这种情况并发布一个版本)debugCompilereleaseCompile

0 投票
2 回答
13306 浏览

android - Android Studio 无法解析导入的 AAR 模块中的符号

类似问题中的所有答案都涉及手动编辑 gradle 文件。但我使用 Android Studio 导入了 AAR 文件并检查了 build.gradle 文件,它们看起来都是正确的。

我的问题是这样的:

进口失败

我已经导入了 ShowCaseView v5.0.0 AAR,但是当我尝试在我的 Tutorial.java 文件中导入类时(你可以看到红色)Android Studio 无法识别这些类。Android Studio 识别的唯一导入是com.github.amlcurran.showcaseview.R.

我也尝试清理和重建项目,关闭并重新打开 Android Studio,但它没有帮助。

PS 请忽略丢失的 XML 文件,因为那是在我将它们复制到项目中之前。

摇篮文件

ShowCaseView-5.0.0 > build.gradle:

我的应用程序的 build.gradle:

Android Studio 项目的 build.gradle:

gradle 设置文件 settings.gradle: