如何从主

时间:2017-12-01 03:07:05

标签: java android import aar libs

我花了三天的时间尝试在Android Studio中阅读.aar,但我无法弄明白。 我的项目视图如下所示:

--- AnApplication

----------------------.gradle

-----------------------.idea

----------------------- app

-------------------------------- build

-------------------------------- libs

---------------------------------------- cube5-debug.aar

(...)

我想从我的主要活动中访问cube5-debug.aar中的一个类。

我知道 .aar文件中有类。

我不知道我必须在主要开头写的精确导入行。 我尝试了导入com.company_cube.cube5(我生成.aar的项目包)和许多其他变种。

我不知道,如果Android Studio将该文件识别为库。但是,文件已成功与gradle同步。

(对于上下文,我生成.aar的项目是由Unity制作的,通过将Unity项目导出到Android项目,然后从那个项目生成.aar;目标是使用此.aar文件作为第二个Android Studio项目中的库 - 我在这篇文章中讨论的那个)

我耐心等待你能给我的任何帮助。感谢

编辑: 要导入.aar,我按照这个小帖子的图片: Importing .aar in android Studio

并通过将.aar放在libs文件夹中解决了帖子报告的错误,如Daniel Nugent所说。但是,当我尝试写时,在Main:

  • Intent intent = new Intent(getApplicationContext(),UnityPlayerActivity.class);

AS不识别UnitPlayerActivity。据说这个类在.aar文件中。在我的第一个AS项目中制作aar之前,它就在这里:

cube5 - >的 - >的统一性 - classes.jar - >的 com.unity3d.player - >的 UnityPlayerActivity

当我用Winrar打开.aar,并用文本编辑器打开unity-classes.jar时,我看到几乎所有东西都是编码符号。

我不确定这是否正常。有什么想法吗?

编辑2:我想我知道错误的位置:当我导入.aar时,我收到IDE致命错误。我不知道如何解决它,所以如果可以,请查看我所做的帖子: IDE fatal error on importing .aar

3 个答案:

答案 0 :(得分:0)

通过执行以下操作将.aar文件添加到您的应用中:

项目build.gradle

中的

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}

在应用build.gradle

dependencies {
       compile(name:'cube5-debug', ext:'aar')
}

答案 1 :(得分:0)

对于Android Studio 2.3.3,您可以使用

repositories {
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile(name: 'cube5-debug', ext: 'aar')
}
<{1>}级app中的

。我没有检查它是否为AS 3.0。

答案 2 :(得分:0)

所以我设法解决了这个问题。在我将一个Unity项目导入AS之后,我谈到的.aar文件是用AS导出的。我这样做是为了在AS中使用Unity程序。但是,这会给某些版本的Unity和AS带来错误。我安装了Unity 5.5.0f3和旧版本的AS,一切正常。

注1:如果您打算安装Unity版本,系统会提示您需要一些Windows 10工具,您必须获取(我不记得名称)。我是通过下载Windows 10安装并仅安装该软件包附带的工具来实现的。

注意2:我让Unity内部的程序在AS中运行,但这只是因为它是一个简单的程序。我后来想在Unity中使用增强现实应用程序,并在AS中使用它,但它显然无法完成。 Evertyting工作正常,直到我将.aar导入AS,并且该.aar库中的一个类未解析(&#34;视频播放器“)。这应该与AR无法识别的AR相机类有关。我最终创建了一个使用Unity的AR应用程序,AS中的另一个应用程序,以及来自AS应用程序,在必要时使用两行代码调用Unity应用程序。要返回AS应用程序,现在在后台,我只需单击后退按钮,Unity应用程序可以识别它(如果您在Unity中为它编写代码)并使其自行销毁,返回AS应用程序。