求教关于ant引用android第三方工程打包的问题

时间:2021-10-26 18:40:09
使用ant工具:A工程想调用B工程中src下的类来进行打包,  注:不是把B工程编译成jar包,而是在A工程中的built.xml文件中指定B工程中src的路劲来打包,那位有经验的高手能给点指引吗?或者demo  或者思路!!谢谢了!第一次做这个,头有点大!!

22 个解决方案

#1


哥们,你的问题解决了没啊?  我也遇到这个问题了

#2



把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来处理,那也就没办法了。

#3


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

#4


引用 2 楼 hslinux 的回复:
把B项目设置为Lib:
project->properties->Android->Library->Is Library 这个勾选上。
在A项目中把B项目添加进去:
project->properties->Android->Library->Add..,,里面把B项目选上。

这样之后default.properties里面就会有
android.library.reference……

你的方法我早用过 是可以的 但不是我们需要的  还是谢谢你!!我问题解决了!   

#5


怎么解决的?能否分享下?

#6


晕。。怎么解决的都不分享下啊。。。

#7


不知道语言怎么表达  有需要加我Q626473306沟通吧

#8


   <!-- 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的自定义属性,如果有用到就会编译不通过。苦恼呀...

#9




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

#10


MD,老子最烦这种人,十万火急的问,问题解决了,又不分享

#11


lz  求分享啊! 求教关于ant引用android第三方工程打包的问题

#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...
     [aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch

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



这个路径老不对,怎么改啊

#13


601 653 698 同求

#14


现在也也遇到这个问题了,求解决方案

#15


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

#16


同问 还有回复吗

#17


同问,解决的请分享

#18


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

#19


@#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中不允许使用'<'字符,所以要转义一下。

#20


#19的解决方法很不错。

#21


#19 解决了

#22


#19 方式问题解决了

#1


哥们,你的问题解决了没啊?  我也遇到这个问题了

#2



把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来处理,那也就没办法了。

#3


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

#4


引用 2 楼 hslinux 的回复:
把B项目设置为Lib:
project->properties->Android->Library->Is Library 这个勾选上。
在A项目中把B项目添加进去:
project->properties->Android->Library->Add..,,里面把B项目选上。

这样之后default.properties里面就会有
android.library.reference……

你的方法我早用过 是可以的 但不是我们需要的  还是谢谢你!!我问题解决了!   

#5


怎么解决的?能否分享下?

#6


晕。。怎么解决的都不分享下啊。。。

#7


不知道语言怎么表达  有需要加我Q626473306沟通吧

#8


   <!-- 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的自定义属性,如果有用到就会编译不通过。苦恼呀...

#9




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

#10


MD,老子最烦这种人,十万火急的问,问题解决了,又不分享

#11


lz  求分享啊! 求教关于ant引用android第三方工程打包的问题

#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...
     [aapt] invalid resource directory name: F:\workspace\Zlib\bin\res/crunch

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



这个路径老不对,怎么改啊

#13


601 653 698 同求

#14


现在也也遇到这个问题了,求解决方案

#15


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

#16


同问 还有回复吗

#17


同问,解决的请分享

#18


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

#19


@#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中不允许使用'<'字符,所以要转义一下。

#20


#19的解决方法很不错。

#21


#19 解决了

#22


#19 方式问题解决了