资源错误在ndk应用程序中集成facebook sdk

时间:2013-10-09 17:02:07

标签: android android-ndk facebook-sdk-3.0 aapt

我正在使用visual studio编译ndk part和ant脚本来编译java部分。

这是我的build.xml

<project name="ProjectTemplate" >
<property name="androidjar.dir"  value="e:\android\sdk\platforms\android-10"/>
<property name="annotationjar.dir"  value="e:\android\sdk\tools\support"/>
<property name="facebookjar.dir"  value="D:\Dev\Workspace\Depot\Source\GameApplication\lib"/>
<property name="build.dir" value="D:\Dev\Workspace\Depot\Source\GameApplication\classes"/>
<property name="src.dir" value="D:\Dev\Workspace\Depot\Source\GameApplication\com"/>

<path id="master-classpath">
    <fileset dir="${androidjar.dir}">
        <include name="android.jar"/>
    </fileset>
    <fileset dir="${facebookjar.dir}">
        <include name="*.jar"/>
    </fileset>
    <fileset dir="${annotationjar.dir}">
        <include name="annotations.jar"/>
    </fileset>
    <pathelement path="${build.dir}"/>
</path>

<target name="compile">
    <mkdir dir="${build.dir}"/>
    <javac destdir="${build.dir}">
        <src path="${src.dir}"/>
        <classpath refid="master-classpath"/>
    </javac>
</target>

D:\ Dev \ Workspace \ Depot \ Source \ GameApplication \ com包含我的java代码和facebook sdk源代码。这是我天真尝试包含facebook sdk的库项目,因为我不知道如何正确包含在ant build中的一个图书馆项目。

我甚至不知道它是否与问题有关。

facebook.jar在facebookjar.dir中都有android-support-v4.jar

编译部分似乎很顺利,因为我对android sdk,java和ant非常新。你可以在日志中看到编译结果

在资源打包上,我从aapt

中得到很多错误

我有很多这样的错误:

error : 9-patch image malformed.No marked region found along edge.Found along top edge.

和许多其他像这样的

..\..\Data\Common\Android\layout\com_facebook_friendpickerfragment.xml:25: error: Error: No resource found that matches the given name (at 'divider' with value '@drawable/com_facebook_list_divider').

其中未找到的资源是之前导致错误的9补丁图像。

即使这些图像导致格式错误的facebook sdk,其他每个用户都会正常使用它们,并且我在使用我的android工具链测试的facebook样本中正确包装。

full log listing查看该应用的所有编译日志。

1 个答案:

答案 0 :(得分:1)

最终问题已经解决,恢复到更标准的Android部署工作流程。 在eclipse中为java部分创建一个项目并使用标准的ant脚本android sdk来。

我还正确地将facebook sdk作为一个不合并源代码的库项目包括在内(我也为其他工作流程做了这一点,但它没有帮助)。

我仍然不理解两个构建之间的差异,因为它们都使用相同的aapt并且可能使用相同的参数,但是一个得到错误,另一个就像魅力一样。