Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Main访问libs中的aar文件_Java_Android_Import_Aar_Libs - Fatal编程技术网

Java 如何从Main访问libs中的aar文件

Java 如何从Main访问libs中的aar文件,java,android,import,aar,libs,Java,Android,Import,Aar,Libs,我花了三天时间在Android Studio中阅读一个.aar,但我就是想不出来。 我的项目视图如下所示: --- AnApplication ----------------------.gradle -----------------------.idea ----------------------- app -------------------------------- build -------------------------------- libs --------

我花了三天时间在Android Studio中阅读一个.aar,但我就是想不出来。 我的项目视图如下所示:

--- AnApplication

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

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

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

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

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

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

(...)
我想从主活动访问cube5-debug.aar中的类

我知道类在.aar文件中

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

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

(在上下文中,我生成.aar的项目是由Unity创建的,它将Unity项目导出到Android项目中,然后从该项目生成.aar;目标是在第二个Android Studio项目中使用此.aar文件作为库—我在本文中讨论的项目)

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

编辑:要导入.aar,我遵循了这篇小帖子的图片:

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

  • Intent Intent=新的Intent(getApplicationContext(),UnityPlayerPractivity.class)
AS不识别UnitPlayerActivity。这个类应该在.aar文件中。在我的第一个AS项目中进行aar之前,它在这里:

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

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

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

编辑2:我想我知道错误在哪里:当我导入.aar时,我得到一个IDE致命错误。我不知道如何解决这个问题,所以如果可以,请查看我的帖子:

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

在project
build.gradle中

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}
dependencies {
       compile(name:'cube5-debug', ext:'aar')
}
应用内
build.gradle

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}
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文件是在我将一个Unity项目导入AS之后,用AS导出的。我这样做是为了在内部使用Unity程序。然而,这给Unity和AS的某些版本带来了错误。我安装了Unity 5.5.0f3和旧版本的AS,一切正常

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


注2:我让Unity的程序在内部工作,但这只是因为它是一个简单的程序。后来我想在Unity中做一个增强现实应用程序,并在AS中使用它,但显然做不到。在我将.aar导入AS,并且该.aar库中的一个类无法解析(“视频播放器”)之前,每个类型都可以正常工作。这应该与AR camera类有关,AS无法识别。我最终创建了一个带有Unity的AR应用程序,AS中的另一个应用程序,并从AS应用程序调用Unity应用程序,必要时使用两行代码。要返回AS应用程序,现在在后台,我只需单击Unity应用程序识别的后退按钮(如果你为它编写了统一的代码)并使其破坏自身,返回AS应用程序。

谢谢你的回复。我在app build.gradle中有行,但在project build.gradle中没有。我只是添加了行,但似乎没有什么区别……我只是不知道如何从Main调用函数。例如,在我的aar文件中有一个名为“libs”的文件夹"它有一个unity-classes.jar文件。我想从该文件中调用一个类。我只是不知道如何执行。如果导入正确,当您调用该类时,Android Studio应该自动知道您正在从aar导入一个类。您可以通过调用类函数auto-completing来检查这一点。只要尝试调用
aar
clas即可ses来自MainActivity,您将看到AS提供了关于它们的提示,并且如果您同意提示,将自动导入所需的类。我正在尝试,但AS没有给出任何建议。我解释了如何导入.aar,我可以在Winrar中看到哪些内容,以及我想在Main中编辑哪一行。如果您能看到,我将非常感谢精确。谢谢你的帮助。我已经在那个文件中有了这些行,这就是为什么我可以毫无错误地同步graddle。但是,我不知道如何从我的Main调用aar文件中的某些内容。在.aar文件中有一个名为“libs”的文件夹它有一个unity-classes.jar文件。我想调用其中的一个类。关于如何从Main调用它,有什么建议吗?