把B项目设置为Lib:
project->properties->Android->Library->Is Library  这个勾选上。
在A项目中把B项目添加进去:
project->properties->Android->Library->Add..,,里面把B项目选上。这样之后default.properties里面就会有
android.library.reference.3=../XXXX.XXX.XXXX
的项。这样就可以编译了,编译的时候会把B项目的代码也一起编译。如果B项目不作为一个lib来处理,那也就没办法了。

解决方案 »

  1.   

    但是现在是想使用ant来打包,所以buid.xml应该怎么写
      

  2.   

       <!-- Compile this project's .java files into .class files. -->  
        <target name="compile" depends="dirs, resource-src, aidl">  
              <echo>libs_classpath..${basedir}/libs/</echo> 
            <javac encoding="UTF-8" target="1.6"  extdirs="" srcdir="." 
                destdir="${outdir-classes}" bootclasspath="${android-jar}"
                 includeantruntime="on" source="1.6">
              <compilerarg value="-Xlint" />
    <!--           第三方的工程 -->
              <src path="${third_lib}/src" />
         <src path="src" />
         <src path="gen" />
    <!--      第三方工程里的导入包 -->
    <!--      <classpath refid="libs_pro"/>  -->
              <classpath refid="libs_classpath"/> 
             
              <src path="${third_lib_2}/src" />
         <src path="src" />
         <src path="gen" />
         <classpath refid="libs_pro_2"/>
          
            </javac> 
            <echo>libs_classpath..${libs_classpath}</echo> 
        </target>  希望能帮助到你们,但我还是遇到个问题,这个方法可以加载第三方工程的src但无法加载第三方工程的res资源和自定义view的自定义属性,如果有用到就会编译不通过。苦恼呀...
      

  3.   

    <!--            第三方工程里的导入包 -->
    <path id="libs_pro">
                  <fileset dir="${third_lib}/libs/">            
                 <include name="*.jar"/>        
                 </fileset>
             </path>
      

  4.   

    我也是这问题 , 加入引用工程之后
    -code-gen:
    [mergemanifest] Found Deleted Target File
    [mergemanifest] Merging AndroidManifest files into one.
    [mergemanifest] Manifest merger disabled. Using project manifest only.
         [echo] Handling aidl files...
         [aidl] No AIDL files to compile.
         [echo] ----------
         [echo] Handling RenderScript files...
         [echo] ----------
         [echo] Handling Resources...
         [aapt] Generating resource IDs...
         [aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunchBUILD FAILED
    D:\Android\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
    D:\Android\sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
    D:\Android\sdk\tools\ant\build.xml:698: null returned: 1这个路径老不对,怎么改啊
      

  5.   

    找到sdk 》tools》ant》build.xml文件
    找到如下一行,value设置为crunch 即可
    <property name="aapt.ignore.assets" value="crunch" />
      

  6.   

    http://blog.csdn.net/wanglin754/article/details/18000315
      

  7.   

    @#12-code-gen:
    [mergemanifest] Found Deleted Target File
    [mergemanifest] Merging AndroidManifest files into one.
    [mergemanifest] Manifest merger disabled. Using project manifest only.
         [echo] Handling aidl files...
         [aidl] No AIDL files to compile.
         [echo] ----------
         [echo] Handling RenderScript files...
         [echo] ----------
         [echo] Handling Resources...
         [aapt] Generating resource IDs...
         <span style="color: #FF0000;">[aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch</span>BUILD FAILED
    D:\Android\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
    D:\Android\sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
    D:\Android\sdk\tools\ant\build.xml:698: null returned: 1#15 楼说修改sdk 》tools》ant》build.xml文件中的<property name="aapt.ignore.assets" value="crunch" />,
    方法可行,但仔细看一下上面的解释,就可以看到"Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"",
    如果直接修改了sdk里面的配置,个人觉得不太妥,那么可以在自己项目的根目录下build.xml文件中加入:
    <property name="aapt.ignore.assets" value="!.svn:!.git:\x3Cdir\x3E_*:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~:crunch" />
    这样子就只对自己的项目生效!
    为什么会有\x3Cdir\x3E这个东西,其实就是<dir>,不过ant build.xml中不允许使用'<'字符,所以要转义一下。