2

棘手的小问题。带有 FB 插件的测试项目运行良好,我的项目给了我以下错误。结果是,当我将 FB 测试项目连接到资产服务器,并且为每个文件夹创建了 .meta 文件时,它也会出错。有什么方法可以告诉编译器跳过 .meta 文件?

Error building Player: CommandInvokationFailure: Failed to re-package resources. See the     Console for details.
/Users/me/android-sdk-macosx/platform-tools/aapt package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "/Users/me/android-sdk-   macosx/platforms/android-17/android.jar" -F bin/resources.ap_ --extra-packages com.facebook.android -S "/Users/me/Unity/FBTest/Assets/Plugins/Android/facebook/res"

stderr[
invalid resource directory name: /Users/me/Unity/FBTest/Assets/Plugins/Android/facebook/res/drawable-hdpi.meta
invalid resource directory name: /Users/me/Unity/FBTest/Assets/Plugins/Android/facebook/res/drawable-ldpi.meta
invalid resource directory name: /Users/me/Unity/FBTest/Assets/Plugins/Android/facebook/res/drawable-mdpi.meta

更新:似乎无法摆脱 .meta 文件,即使我与资产服务器断开连接:(有什么想法吗?

更新:必须去编辑 -> 项目设置 -> 编辑器并禁用版本控制才能编译。如果可以修复此问题会很好,以便在打包 APK 时忽略元文件...

4

4 回答 4

0

我添加了这条线

<property name="aapt.ignore.assets" value="!*.meta:!.svn:!.git:.*:&lt;dir&gt;_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" />

到 facebook android unity sdk 的 build.xml 文件。无需修补android sdk。

于 2015-01-27T11:02:38.737 回答
0

找到了一个愚蠢的解决方法,因为我遇到了完全相同的问题,仅在 OSX 上进行了测试,因为它依赖于通过 hashbang 行执行 python 脚本。

  1. 在你的 android SDK 中找到 aapt 所在的路径(例如 android-sdk-macosx/build-tools/17.0.0/aapt)并将其重命名为 aapt.real
  2. 创建一个名为 aapt 的新文件并将以下内容放入其中:

    #!/usr/bin/env python
    
    import os
    import sys
    
    os.execv(os.path.join(os.path.split(__file__)[0], 'aapt.real'), ['aapt'] + sys.argv[1:] + ['--ignore-assets', '!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!*.meta'])
    
  3. 想知道为什么 Unity 不包含 --ignore-assets 选项来解决这个问题。
于 2013-11-08T02:27:07.453 回答
0

不妨将此标记为已回答。为资产服务器添加的 .meta 文件破坏了 android 打包,因此解决方法是在构建之前禁用 Edit -> Project Settings -> Editor 下的源代码控制。如果这是固定的,那就太好了,尽管这一步是不必要的......

更新:

嗯,重新连接到资产服务器让它认为本地的一切都发生了变化,所以这是一个非常非常糟糕的解决方法

于 2013-10-21T16:51:53.960 回答
-1

另一个似乎可行的解决方法是在开始构建后但在统一开始打包过程之前从 res 文件夹中删除所有 .meta 文件。Unity 在构建项目时不会重新创建元文件。这样您就不必禁用和重新启用版本控制。

于 2013-10-25T13:22:19.453 回答