如何让Android Studio在.jar文件中包含资源?

时间:2015-04-07 18:15:37

标签: jar android-studio unity3d

我正在使用Unity 5.它仍然希望java插件是使用JDK 1.6构建的.jar文件。

我在Unity 4下工作,但他们改变了一些东西。现在我在从Unity构建apk时遇到此错误:

  

OBSOLETE - 在Assets / Plugins / Android / res中提供Android资源   已弃用,请将您的资源移至Android库。看到   “手册的构建插件”部分。

如何让AS将资源放入classes.jar? “建立Android的插件”没有提到资源。

有关我的项目的其他信息:

该项目引用了Google Play服务,因此我需要

中的version.xml
<integer name="google_play_services_version">6587000</integer>

其中包含Manifest中引用的版本号。

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

但是如果我将这个文件包含在我的AS库项目的res / values中,它仍然作为一个xml文件输出到classes.jar旁边的res / values中。

顺便说一句,我正在挖掘.jar文件

/ApplicationName/build/intermediates/exploded-aar/ProjectName/LibararyName/unspecified/classes.jar

建立项目后。

1 个答案:

答案 0 :(得分:5)

首先,这是一个警告,而不是错误。

不建议在Assets / Plugins / Android / res /文件夹中提供Unity资源,因为它可能会导致资源冲突。

当您在Android库中提供资源时,它们会在构建过程中正确合并。

基本上,您有三种选择:

  • 将您的插件转换为Android库。或者你可以初始化一个空库,将你的.jar文件添加到bin /,将你的资源添加到res /(在project.properties中应该有一个清单和android.library = true)。您可以通过调用android create lib-project(more details
  • 来完成此操作
  • 如果您在Android Studio中编译插件,则可以使用生成的.aar文件,因为您已将项目设置为库(在您的gradle中应用插件:&#39; com.android.library&#39;文件)。只需将其放在项目的任何文件夹中,它都应自动检测为仅限Android的插件。
  • 继续在res /中提供资源,并等待Unity完全不支持它。

希望这有帮助。