问题标签 [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.
android - 在其他项目中使用 .AAR 文件的问题
我必须在另一个项目中使用我的 android 库项目(它有资源)。这是我到目前为止所做的:
在 Android Studio 中创建了一个库项目。构建该项目,因此生成 .aar 文件,如下所示:
..\MyApplication\mylibrary\build\outputs\aar\mylibrary-debug.aar
在 Android Studio 中创建了一个新的 Android 项目。然后,我遵循了这个:
文件 >> 新模块 >> 导入 .JAR 或 .AAR 包
这为我的项目提供了以下结构:
gradle sync 或我制作项目时没有任何错误。
但是现在,如果我尝试使用我的库项目的类名,它不会显示在自动建议中。我的图书馆项目中有一个班级MyClass.java
。在 IDE 中,如果我尝试编写MyC
,我无法看到MyClass
. 它显示没有建议。
我错过了一些配置吗?
如果您需要与文件夹结构或文件相关的其他信息,请告诉我build.gradle
。
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。提前致谢。
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
但是当我尝试访问我的班级方法时,什么也没有出现。
我错过了什么?
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
java - 如何编译Android库?
在我的项目中,我使用的是SlidingUpPanel。
由于我需要一个功能,我将项目克隆到我的机器上并操作了库。我在它的演示项目上测试了我的功能,基于这个项目一切都很好。
现在,我想编译它的library
模块以获取.aar
文件并将其添加到我的项目中。我所做的是:
- 我打开 cmd 并导航到
slidingUpPanel
项目的根文件夹。 - 运行这个命令:
./gradlew :library:build
- 库编译和创建 .aar 下
/library/build/outputs/aar/library-debug.aar
我将此文件复制/粘贴到/libs
我的项目文件夹中并更新build.gradle
如下:
同步 gradle 文件后,我收到错误,这是因为SlidingUpPanelLayout无法识别。
知道为什么无法识别图书馆吗?任何想法将不胜感激。谢谢。
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 文件。
android - 在 Android AAR 库中,我可以公开公共 API 并隐藏实现吗?
这似乎是一个基本问题,但我无法在任何地方找到信息。
我想构建一个公开 API 但隐藏实现的 AAR,以便不会直接调用实现。
除了混淆我想要封装(隐藏)的包之外,我没有看到其他方法。
android - 如何使用本地 aar 依赖?
我在谷歌上搜索了本地 aar,每个人都说它可以工作,但它在 android studio 1.1.0 上不起作用。
我尝试使用:
但它提示:
我应该如何使用本地 aar?如果我应该使用:
这个怎么做?
android - 排除发布构建类型的资产
我正在使用 gradle 构建的应用程序中导入一个 android 库,如下所示:
该库仅包含要在 webview 中使用的资产、js、css 和图像,其布局如下:
该js
文件夹包含源文件(与源映射一起使用)。我想包括它和.map
调试版本的文件,并且在发布版本中只有缩小的 js,但我找不到这样做的方法。
到目前为止,我已经尝试过:
知道我想要的是否可以实现,如果可以,如何实现?
(我还考虑过发布两个版本的库(great-lib
and ),并在andgreat-lib-debug
中有依赖关系,但我更愿意避免这种情况并发布一个版本)debugCompile
releaseCompile
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: