2011-09-12 16 views
0

私のアンドロイドプロジェクトでobfuscateを実行できません。私は同様のことを言っているそれぞれ100のエラーを取得し続ける -Android - Proguard obfuscateがアンドロイドクラスを見つけることができません

[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ファイルには、すべての正しいアンドロイドパスが指定されています。

私のビルドファイル -

<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> 

+0

確かにクラスパスの問題のようです。 Eclipse内でこれをやっていますか? –

+0

はい、ありがとうございます。私もパッケージを取得するandroid.appは存在しないし、パッケージandroid.contentが存在しない場合はエラーが発生します – Suchi

+0

これはすべてのビルドで、または署名付きの.apkファイルをエクスポートするときに発生しますか? –

答えて

0

これは、クラスパスの問題のように聞こえます。 Androidのビルドシステムは、署名された.apkファイルをエクスポートするときにのみ呼び出すため、おそらくProGuardとは関係ありません。また、Eclipseは独自のビルドシステムを使用しており、build.xmlに依存していないと考えています。しようとする

もの:

  1. あなたはAndroidのプロジェクトとしてプロジェクトを作成していることを確認してください。そうでない場合は、もう一度やり直してください。
  2. パッケージエクスプローラでプロジェクト名を右クリックし、Android Tools> Fix Project Propertiesを選択します。
  3. プロジェクトのプロパティを開き、Androidを選択し、プロジェクトビルドターゲットが選択されていることを確認します。その後、Java Build Pathを選択し、Androidライブラリがライブラリペインに表示されていることを確認します。
+0

のように感じることを知っています。私のプロジェクトはうまく構築されて動作します。そのとき、Obfuscateを実行しようとすると、エラーが出ます。 – Suchi

+0

どのように難読化を実行しますか? –

+0

私はantスクリプトを使ってbuild.xmlを実行します。上記の質問にファイルを追加しました。助けてくれてありがとう。 – Suchi

関連する問題