Ant实现Android代码编译混淆(“找不到程序包R”解决方法)
来源:互联网 发布:tb软件 编辑:程序博客网 时间:2024/06/17 07:27
最近在项目里本来是用ProguardGUI实现混淆并生成jar包,想写一个Ant的xml来实现一键生成
编译,重点来了,错误就是在这步
最后转移jar包并混淆生成
但在过程中执行javac的时候遇到了“找不到程序包R”的错误,纠结了好久,下面一部分一部分的介绍下
初始化部分就不多说了,主要是实现手动clean的部分,看代码:
<pre name="code" class="html"><target name="init" description="Initializing all output directories" > <!-- Delete the ${build} and ${dist} directory trees --> <delete dir="${build}"/> <delete dir="${dist}"/> <mkdir dir="${build}"/></target>
打包资源,生成R包(这一步在命令行进行ant操作的时候是必须的,在Eclipse里会自动生成R.java,这步就不需要)
<target name="package-resource" depends="init"> <mkdir dir="${build}/classes"/> <mkdir dir="${rootdir}/gen"/> <exec executable="${aapt}" failonerror="true"> <arg line="package" /> <arg line="-f" /> <arg line="-m" /> <arg line="-J ${rootdir}/gen " /> <arg line="-S ${rootdir}/res"/> <arg line="-M AndroidManifest.xml" /> <arg line="-A ${rootdir}/assets"/> <arg line="-I ${android.jar}" /> </exec></target>
编译,重点来了,错误就是在这步
在javac中,漏掉了两个<src path>的定义,才会报找不到R的错误
<target name="compile" depends="package-resource" description="compile the source " ><!-- Compile the java code from ${src} into ${build} --> <mkdir dir="${build}"/> <mkdir dir="${build}/${assets_name}"/> <javac encoding="utf-8" target="1.6" destdir="${build}" bootclasspath="${android.jar}"> <src path="src"/> <src path="gen"/> <classpath><fileset dir="${external.lib}" includes="*.jar"/></classpath> </javac> </target>
最后转移jar包并混淆生成
<target name="dist" depends="compile" description="generate the distribution" > <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --> <jar jarfile="${dist}/ad_weibo_sdk_temp_${DSTAMP}.jar" basedir="${build}"/> <delete dir="${build}"/></target><target name="obfuscate" depends="dist"> <!-- Add Proguard Tasks --> <property name="proguard.jar" location="${android.tools.dir}/proguard/lib/proguard.jar" /> <taskdef name="proguard" classname="proguard.ant.ProGuardTask" classpath="${proguard.jar}" /> <proguard> -include proguard.cfg -injars ${dist}/temp_${DSTAMP}.jar -outjars ${dist}/release.jar -libraryjars libs/http1220.jar -libraryjars libs/android-support-v4.jar -libraryjars ${android.jar} -dump "${dist}/dump.txt" -printseeds "${dist}/seeds.txt" -printusage "${dist}/usage.txt" -printmapping "${dist}/mapping.txt" </proguard> </target>
0 0
- Ant实现Android代码编译混淆(“找不到程序包R”解决方法)
- 使用ant自动化编译、签名、代码混淆Android项目
- 使用ant自动化编译、签名、代码混淆Android项目
- 使用ant自动化编译、签名、代码混淆Android项目
- 用ant实现自动打包android(二) -- android代码混淆
- 牛人必修 Ant编译android工程 ,并Proguard代码混淆,v4混淆配置
- Android Ant编译时候进行混淆
- Android中使用ant混淆编译
- Android Ant编译时候进行混淆
- 【Android】 新建项目 "错误: 程序包R不存在" 的解决方法
- android 实现代码混淆
- android 实现代码混淆
- android 实现代码混淆
- android 实现代码混淆
- android 应用 Ant脚本自动编译、打包、代码混淆、签名、安装等
- 【Android】【编译】代码混淆相关
- android 防止R被混淆,R类反射混淆,找不到资源ID
- 【Android编程】R文件找不到的解决方法
- final方法和final类,内部类
- 分级基金的上折,下折
- 多线程
- Hdu 5386 Cover 拓扑排序
- git 从储藏中创建分支
- Ant实现Android代码编译混淆(“找不到程序包R”解决方法)
- HDU 5385 The path
- 被动信息收集1——DNS基础 + DNS解析工具 NSLOOKUP使用
- Nginx基本数据结构之ngx_array_t
- 我爱机器学习网深度学习类别文章汇总
- 计算机程序的构造和解释笔录(1):构造过程抽象
- 1020. Tree Traversals (25) - 已知后序和中序(前序和中序)求二叉树 (pat leetcode)
- poj 2485 Highways
- 【Android 】HttpURLConnection里byte转化string的错误笔记