可以使用Android Studio从库项目中创建兼容Unity插件的JAR吗?

Gra*_*ner 9 android jar unity-game-engine android-studio

使用Unity3d时,可以通过插件访问"原生"(纯java)Android功能.如文档中所述,

有几种方法可以创建Java插件,但每种情况下的结果都是最终得到一个.jar文件,其中包含插件的.class文件

当我在eclipse中创建一个Android应用程序项目,并设置它是一个库时,它会自动.jar在该bin文件夹中生成一个文件.我知道这是Android工具链上下文中的临时文件,但这是Unity需要的文件,以便查看类并构建它自己的内部JNI魔法.(如果需要在该过程中更加清晰,则在此处概述整个过程.)

不幸的是,尽管我可以说,Android Studio不会生成此文件.有没有办法让我告诉它给我这个文件,或者用其他方式来生成Unity可以使用的代码?

Pet*_*ter 6

是的,您可以使用Android Studio从库中生成jar.在我的情况下,jar文件非常好地隐藏在app build文件夹中

<ProjectRootDir>/<AppModuleName>/build/exploded-aar/<ProjectName>/<LibraryModuleName>/unspecified/classes.jar

我的示例设置为:

  • 一个app模块,只包含一个最小的Android应用程序(包括一个MainActivity)
  • 包含库代码的库模块
  • 从您的应用程序添加依赖项到您的库,例如add:compile project(':library')

如果你现在构建你的应用程序它也将构建库,你的应用程序构建文件夹将包含我在上面解释的位置下的jar文件(在我的例子中:PROJECT_ROOT/app/build/explosion-aar/SampleLibrary/library/unspecified/classes .罐).


mwk*_*mwk 6

使用Unity 5.3+,您不再需要构建.jar,而是可以使用由Android Studio Android Library模块自动创建的.aar文件.我发现这比使用jar方法更容易:

  • 在Android Studio项目中,创建一个Android库模块:文件>新建>新模块> Android库
  • 确保你的minSdkVersion和targetSdkVersion符合你的Unity项目设置
  • 将您的类等添加到模块并构建
  • 一个成功的构建应该在build/outputs/aar中创建一个.aar文件/例如我的模块创建mkunityplugin-release.aar
  • 打开Unity项目,然后将.aar文件直接拖到Project视图中的Assets/Plugins/Android上.这将创建一个您可以在检查器中查看的资产; 它将显示插件的信息,并应检查Android平台
  • 为Android构建Unity项目.我的第一次尝试失败,因为我有一个不同的targetSdkVersion所以我得到一个构建错误,说明清单无法合并; 我在我的Android Studio build.gradle中修复了它,然后它运行了

这是我第一次听说.aar可以直接使用的地方https://www.reddit.com/r/Unity3D/comments/3eltjz/how_to_add_an_android_library_project_folder_to/