【发布时间】:2011-09-12 16:14:44
【问题描述】:
我无法在我的 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>
【问题讨论】:
-
当然看起来像一个类路径问题。您是在 Eclipse 中执行此操作的吗?
-
是的,我是。如果有帮助,我还会得到包 android.app 不存在和包 android.content 不存在错误
-
每次构建都会发生这种情况,还是仅在导出签名的 .apk 文件时发生?
-
我只是想在我的源代码上运行它。仅在一个项目中尝试过。
-
哈哈。现在您知道使用您的混淆软件的客户的感受了
标签: android obfuscation proguard