6

私はアプリケーションでflurrysdkを使用していますが、このflurry jarファイルを追加する前は、エラーなしで正常に動作しています。libsフォルダーにflurryjarファイルを追加した後、Eclipseでアプリケーションをコンパイルしているときにこのエラーが発生します。

trouble writing output: Too many methods: 70205; max is 65536. By package:
  5 android.accessibilityservice
  1 android.animation
  2 android.annotation
315 android.app
136 android.content
 28 android.content.pm
 47 android.content.res
 35 android.database
 14 android.database.sqlite
  8 android.gesture
113 android.graphics
 44 android.graphics.drawable
  1 android.graphics.drawable.shapes
 11 android.location
 27 android.media
 40 android.net
  1 android.net.http
  1 android.net.wifi
 96 android.os

[2013-03-04 16:42:13 - myapp] Conversion to Dalvik format failed with error 2

私は解決する方法について考えていますerror 1が、これは私が解決できない新しいエラーです。私はたくさん検索しましたが、これに対する解決策は得られませんでした。

このjarファイルを削除すると、正常に機能しています。ライブラリにアプリケーションを実行できない場合。なぜこのエラーが発生するのですか?このための解決策は何ですか。

4

3 に答える 3

12

エラーはtrouble writing output: Too many methods: 70205; max is 65536、「これに対する解決策」は、メソッド数を約10%削減することです。

通常、これは、JARが多すぎてメソッドが多すぎるという欠点ですが、数万のメソッドを自分で作成したことは確かに考えられます。

不要なJARを見つけて、削除してみてください。たとえば、ProGuardを使用して、アプリ内のデッドコードを報告できます。ライブラリが通常必要とするライブラリの依存JARが存在する可能性がありますが、ライブラリを使用する方法は必要ありません。

ProGuard自体は、通常の難読化を一切行わずに、アプリからデッドコードを削除するためだけに使用することもできます。ただし、これは通常のビルドプロセスの一部ではないため、このためにAntスクリプトを何らかの方法で作成する必要があります。

于 2013-03-25T10:42:06.877 に答える
1

プロジェクトにGoogleApiを含めていたため、このエラーが発生していました。

于 2013-10-15T01:55:46.193 に答える
1

私が観察したのは、jarファイルを次のようなフォルダ内に直接配置するべきではないということです。

libs/x.jar

libsまたはそのための任意のフォルダ内にサブフォルダを作成したとき

libs/temp/x.jar

その一時フォルダーにいくつのjarファイルをロードできます。そうすれば、エラーを回避することができました。libsフォルダ自体である必要はありません。名前は何でもかまいません。

これは、jarファイルの数が多い場合にのみ実行する必要があります。libsそれ以外の場合は、フォルダに直接入れることができます。

于 2013-10-16T09:38:07.870 に答える