【问题标题】:How do I get Android Studio to include resources in a .jar file?如何让 Android Studio 在 .jar 文件中包含资源?
【发布时间】:2015-06-12 10:47:49
【问题描述】:

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

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

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

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

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

项目引用了 Google Play Services,所以我需要 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

在构建项目之后。

【问题讨论】:

  • 您是否尝试过使用 Resources 文件夹?我认为它将发送到 res 但您必须在其中嵌套一个文件夹。我从来没有像在 Unity 中使用 Resources 文件夹并将其放入 android Studio 时那样使用 res 文件夹。它会自动将其放入 res 文件夹中。

标签: jar android-studio unity3d


【解决方案1】:

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

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

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

基本上,您有三个选择:

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

希望这会有所帮助。

【讨论】:

  • 我没有尝试 .aar,因为 Unity 的文档说它必须是 .jar。我会试试的。
猜你喜欢
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2011-01-22
  • 2014-08-26
  • 2018-04-16
  • 1970-01-01
相关资源
最近更新 更多