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

How do I get Android Studio to include resources in a .jar file?

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

构建的 .jar 文件

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

OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an Android Library. See "Building Plugins for Android" section of the Manual.

如何让AS将资源放入classes.jar? "Building Plugins for Android" 没有提到资源。

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

该项目引用 Google 播放服务,所以我需要 version.xml 在那里

<integer name="google_play_services_version">6587000</integer>

其中包含清单中引用的版本号。

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

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

顺便说一下,我正在从

中提取 .jar 文件

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

构建项目后。

首先,这是警告,不是错误。

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

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

基本上,您有三个选择:

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

希望对您有所帮助。