如何从 Main 访问库中的 aar 文件

How to access aar file, in libs, from Main

过去三天我一直在尝试阅读 Android Studio 中的 .aar,但我无法理解。 我的项目视图如下所示:

--- AnApplication

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

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

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

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

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

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

(...)

我想从主 activity 访问 cube5-debug.aar 中的 class。

我知道.aar 文件中有 class。

我不知道 我必须在我的 main. 我试过 import com.company_cube.cube5(我生成 .aar 的项目包)和许多其他变体。

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

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

中谈论的项目

我正在耐心等待您能给我的任何帮助。谢谢

编辑: 要导入 .aar,我遵循了这个小 post 的图像: Importing .aar in android Studio

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

AS 无法识别 UnitPlayerActivity。这个 class 应该在 .aar 文件中。在我的第一个 AS 项目中制作 aar 之前,它在这里:

cube5->libs->unity-classes.jar-> com.unity3d.player->UnityPlayerActivity

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

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

编辑 2: 我想我知道错误在哪里:当我导入我的 .aar 时,我得到一个 IDE 致命错误。我不知道怎么解决,所以如果可以的话,请查看我做的post: IDE fatal error on importing .aar

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

在项目中 build.gradle

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

在应用程序中 build.gradle

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

对于 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')
}

app 级别 build.gradle。我没有检查 AS 3.0.

所以我设法解决了它。我说的.aar文件是用AS导出的,是我把一个Unity工程导入AS后。我这样做是为了在 AS 内部使用 Unity 程序。但是,这会导致某些版本的 Unity 和 AS 出错。我安装了Unity 5.5.0f3和旧版本的AS,一切正常。

注意1:如果你打算安装那个Unity版本,系统会提示你需要一些windows 10工具,你必须得到(我不能记住名字)。我通过下载 windows 10 install 并只安装软件包附带的那个工具来做到这一点。

注意 2: 我让 Unity 的程序在 AS 中工作,但这只是因为它是一个简单的程序。后来想在Unity中做一个增强现实的App,在AS中使用,但显然做不到。在我将 .aar 导入 AS 之前,Evertyting 工作正常,并且该 .aar 库中的 class 未解析(“视频播放器”)。这应该与 AR 相机 class 有关,AS不认识。我最终用 Unity 创建了一个 AR 应用程序,AS 中的另一个应用程序,并从 AS 应用程序,在必要时用两行代码调用 Unity 应用程序。到 return 到 AS 应用程序,现在在后台,我简单地点击后退按钮,它被 Unity 应用程序识别(如果你在 Unity 中为它编写代码)并使其自我销毁,returning 到 AS 应用程序。