Android - Proguard混淆无法找到Android类



我无法在我的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。

尝试:

  1. 确保你创建的项目是Android项目。如果没有,重新开始。
  2. 在包资源管理器中右键单击项目名称,选择Android工具> Fix project Properties。
  3. 打开项目属性,选择Android,并确保选中了项目构建目标。然后选择Java Build Path,并确保一个Android库出现在Libraries窗格中。

相关内容

  • 没有找到相关文章

最新更新