1

ANT ビルド ツールを使用して Android アプリケーションをビルドしています。

  1. dexgaurd を使用してローカル マシンで実行すると、正常にビルドされます。
  2. dexgaurd を使用しない場合、サーバー上で正常に動作します。
  3. dexgaurd を使用すると、サーバーで失敗します。

サーバー仕様:

             total       used       free     shared    buffers     cached

Mem:          7978       7328        649          0         32        391
-/+ buffers/cache:       6904       1073
Swap:         8188        486       7702

以下はエラーです:

[dexguard] java.lang.OutOfMemoryError: PermGen space
[12:10:04]
[dexguard-package-helper] The following error occurred while executing this line:
/abc/def/custom_rules.xml:60: java.lang.OutOfMemoryError: PermGen space
[12:10:04]
[ant] The following error occurred while executing this line:
/abc/def/custom_rules.xml:127: The following error occurred while executing this line:
/abc/def/custom_rules.xml:60: java.lang.OutOfMemoryError: PermGen space

エラーが発生する行は次のとおりです。

<dexguard
            verbose="${verbose}"
            keystore="${key.store}"
            keystorepassword="${key.store.password}"
            keyalias="${key.alias}"
            keypassword="${key.alias.password}"
            printseeds="${obfuscate.absolute.dir}/seeds.txt"
            printusage="${obfuscate.absolute.dir}/usage.txt"
            printmapping="${obfuscate.absolute.dir}/mapping.txt"
60 - >      configuration="@{configuration}">
            <configuration file="proguard-project.txt" />
            <configuration file="dexguard-project.txt" />
            <configuration file="dexguard-project-${build.target}.txt" />
            <dexguard-options />
            <libraryjar refid="project.target.class.path" />
        </dexguard>

<dexguard-package-helper
      127 ->           configuration="${dexguard.dir}/lib/dexguard-${build.target}.pro">
                    <dexguard-options>
                        <injar path="${out.classes.absolute.dir}"     filter="**.class" />
                        <injar path="${source.absolute.dir}"          filter="!**.java,!.hg**,!**/.hg**,!.git**,!**/.git**,!.svn**,!**/.svn**,!CVS,!CVS/**,!**/CVS,!**/CVS/**,!.cvsignore,!**/.cvsignore,!SCCS,!SCCS/**,!**/SCCS,!**/SCCS/**,!**.orig,!**~,lib/*/*.so,!**.so,!**.keep,!**.DS_Store,!**.aidl,!**.rs,!**.rsh,!**.d,!**.java,!**.scala,!**.scc,!**.swp,!**.bak,!**thumbs.db,!**picasa.ini,!**package.html,!**overview.html,!**.AIDL,!**.RS,!**.RSH,!**.D,!**.JAVA,!**.SCALA,!**.SCC,!**.SWP,!**.BAK,!**THUMBS.DB,!**PICASA.INI,!**PACKAGE.HTML,!**OVERVIEW.HTML" />
                        <injar refid="project.all.jars.path"          filter="!org/w3c/dom/**,!org/xml/sax/**,!org/xmlpull/v1/**,!org/json/JSON*,!org/apache/commons/logging/Log.class,org/apache/http/Consts.class,org/apache/http/HttpHeaders.class,org/apache/http/entity/ContentType.class,org/apache/http/util/Args.class,org/apache/http/util/Asserts.class,org/apache/http/util/CharsetUtils.class,org/apache/http/util/NetUtils.class,org/apache/http/util/TextUtils.class,!org/apache/http/*,!org/apache/http/auth/*,!org/apache/http/auth/params/*,!org/apache/http/client/*,!org/apache/http/client/entity/*,!org/apache/http/client/methods/*,!org/apache/http/client/params/*,!org/apache/http/client/protocol/*,!org/apache/http/client/utils/*Utils.class,!org/apache/http/conn/*,!org/apache/http/conn/params/*,!org/apache/http/conn/routing/*,!org/apache/http/conn/scheme/*,!org/apache/http/conn/ssl/*,!org/apache/http/conn/util/*,!org/apache/http/cookie/*,!org/apache/http/cookie/params/*,!org/apache/http/entity/*,!org/apache/http/impl/*,!org/apache/http/impl/auth/*,!org/apache/http/impl/client/*,!org/apache/http/impl/conn/*,!org/apache/http/impl/conn/tsccm/*,!org/apache/http/impl/cookie/*,!org/apache/http/impl/entity/*,!org/apache/http/impl/io/*,!org/apache/http/io/*,!org/apache/http/message/*,!org/apache/http/params/*,!org/apache/http/protocol/*,!org/apache/http/util/*,META-INF/services/**,!META-INF/**,!.hg**,!**/.hg**,!.git**,!**/.git**,!.svn**,!**/.svn**,!CVS,!CVS/**,!**/CVS,!**/CVS/**,!.cvsignore,!**/.cvsignore,!SCCS,!SCCS/**,!**/SCCS,!**/SCCS/**,!**.orig,!**~,**.class,lib/*/*.so,!**.so,!**.keep,!**.DS_Store,!**.aidl,!**.rs,!**.rsh,!**.d,!**.java,!**.scala,!**.scc,!**.swp,!**.bak,!**thumbs.db,!**picasa.ini,!**package.html,!**overview.html,!**.AIDL,!**.RS,!**.RSH,!**.D,!**.JAVA,!**.SCALA,!**.SCC,!**.SWP,!**.BAK,!**THUMBS.DB,!**PICASA.INI,!**PACKAGE.HTML,!**OVERVIEW.HTML" />
                        <injar path="${out.native.libs.absolute.dir}" filter="lib/*/*.so" />
                        <injar path="${out.absolute.dir}/${resource.package.file.name}" />
                        <outjar path="${out.final.file}" />
                    </dexguard-options>
                </dexguard-package-helper>

以下は、環境変数とその値です: ANT_OPTS

[echo] ant build config -Xms1024m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=2048m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

XX:MaxPermSize を 4096 に変更しましたが、それでも同じエラーが発生します。-Xms -Xmx -XX の値に関係なく、この時点で一貫して失敗します。環境が正常に機能するように、環境に他の値を追加する必要がありますか。この種の問題の一般的な解決策は、-XX:MaxPermSize のメモリ値を増やすことですが、役に立ちません。

詳細コンテキスト: アリは 8 つのアプリケーションを構築します。ビルドは 6 番目のアプリケーションまで正常に動作し、それらのすべてに同様の custom_rules.xml ファイルがあります。しかし、7番目のアプリケーションをビルドしているときに失敗します。

さらに情報が必要な場合は、コメント セクションに記載してください。追加します。私はこの問題に関して多くのことをグーグルで検索し、ソリューションを使用して解決しようとしましたが、成功しませんでした.

4

0 に答える 0