棘手的小问题。使用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的打包中会忽略元文件...
答案 0 :(得分:0)
可以将此标记为已回答。为资产服务器添加的.meta文件打破了android打包,因此解决方法是在Edit - >下禁用源代码管理。项目设置 - >编辑之前做编辑。如果这是固定的那么好,所以虽然步骤是不必要的......
更新:
嗯,重新连接到资产服务器让它认为本地的一切都发生了变化,所以这是一个非常非常糟糕的解决方法答案 1 :(得分:0)
发现了一个愚蠢的解决方法,因为我遇到了完全相同的问题,只在OSX上进行了测试,因为它依赖于通过hashbang行执行python脚本。
创建一个名为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'])
答案 2 :(得分:0)
我添加了一行
<property name="aapt.ignore.assets" value="!*.meta:!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" />
到facebook android unity sdk的build.xml文件。无需修补android sdk。
答案 3 :(得分:-1)
另一种似乎有效的解决方法是在开始构建之后但在Unity开始打包过程之前从res文件夹中删除所有.meta文件。 Unity在构建项目时不会重新创建元文件。这样您就不必禁用和重新启用版本控制。