我无法在我的android项目上运行混淆。我一直得到100个错误,每个都说类似的事情-
[javac] /MyPath/LocationReceiver.java:34: cannot find symbol
[javac] symbol : class Intent
[javac] location: class com.myPath.LocationReceiver
[javac] public final void onHandleIntent(Intent intent) {
我需要看哪里?我的build.xml文件指定了所有正确的android路径。
我的构建文件-
<property name="src.dir" value="src/com"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="input.jar.file" value="${build.dir}/temp.jar"/>
<property name="obfuscated_sdk.jar.file" value="${build.dir}/MyName.jar"/>
<property name="proguard-home" value="/MyPath/proguard4.6" />
<property name="android-home" value="/MyPath/android-sdk" />
<property name="android-version" value="8" />
<property name="android-platform-specific" value="${android-home}/platforms/android-${android-version}" />
<property name="android-jar" value="${android-platform-specific}/android.jar" />
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="build-sdk" depends="clean" description="compiles the sdk java files">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
source="1.6"
debuglevel="lines">
<classpath>
<path>
<pathelement location="${android-jar}" />
</path>
</classpath>
</javac>
</target>
<target name="create.input.jar" depends="build-sdk">
<jar destfile="${input.jar.file}" basedir="${classes.dir}">
<manifest>
<attribute name="MyName" value="v1.0"/>
</manifest>
</jar>
</target>
<target name="Obfuscate" depends="create.input.jar" description="shrink compiled classes">
<taskdef resource="proguard/ant/task.properties" classpath="/MyPath/proguard4.6/lib/proguard.jar" />
<proguard>
-libraryjars "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar"
-libraryjars "/MyPath/android-sdk/platforms/android-8/android.jar"
-injars ${input.jar.file}
-outjars ${obfuscated_sdk.jar.file}
</proguard>
<delete file="${input.jar.file}"/>
<delete dir="${classes.dir}"/>
<delete dir="bin"/>
</target>
这听起来像是一个类路径问题。它可能与ProGuard没有任何关系,因为Android构建系统只在导出签名的.apk文件时调用它。而且,我相信Eclipse使用自己的构建系统,而不依赖于build.xml。
尝试:
- 确保你创建的项目是Android项目。如果没有,重新开始。
- 在包资源管理器中右键单击项目名称,选择Android工具> Fix project Properties。
- 打开项目属性,选择Android,并确保选中了项目构建目标。然后选择Java Build Path,并确保一个Android库出现在Libraries窗格中。