当项目连接到Asset Server时,Facebook Unity SDK安卓barfs

时间:2013-10-18 23:25:25

标签: android facebook-unity-sdk

棘手的小问题。使用FB插件的测试项目工作正常,我的项目给了我以下错误。当我将FB测试项目连接到资产服务器,并且为每个文件夹创建了.meta文件时,它也会变为barf。有什么方法可以告诉编译器跳过.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 个答案:

答案 0 :(得分:0)

可以将此标记为已回答。为资产服务器添加的.meta文件打破了android打包,因此解决方法是在Edit - >下禁用源代码管理。项目设置 - >编辑之前做编辑。如果这是固定的那么好,所以虽然步骤是不必要的......

更新:

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

答案 1 :(得分: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选项来解决这个问题。

答案 2 :(得分: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。

答案 3 :(得分:-1)

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