0

非常に単純なネットワーク処理を行う Android プロジェクトを作成しました。このプロジェクトはスタンドアロンであり、jar ファイルとして正常にエクスポートし、作業した他のプロジェクトにインポートしました。このプロジェクトをエクスポートするとき、プロジェクトに使用されるクラス ファイルのみをエクスポートします。(システムファイルなし: マニフェストなど)

このプロジェクトは他のプロジェクトで使用されており、今後さらに使用されるため、スタンドアロンのままにしておきたいと思います。

ただし、ネットワーク jar の機能やその他の機能を必要とするプロジェクトは他にもあります。私がやりたいことは、新しいプロジェクトを作成し、ネットワーク jar ファイルをインポートすることです。ネットワーク jar ファイル内のすべての関数のラッパーを作成してから、さらに機能を追加します。

その後、このプロジェクトを jar ファイルとしてパッケージ化し、その追加機能を必要とするプロジェクトにのみ使用できるようにします。

このプロジェクトを jar として持つことは重要です。なぜなら、このコンポーネントは他の人が使用するために提供される可能性があり、簡単でシンプルな統合が必要だからです。

これは、私にとってはかなり簡単なように思えました。しかし、noClassDef エラーと Verify エラーが発生しています。

元のネットワーク jar から静的な文字列を返す単一の関数にプロジェクトを削除し、それを通過させても、「メソッド xxxx から参照されたメソッド xxxx が見つかりませんでした」というログが表示され、静的メソッドを解決できないという警告が表示されました。次に No ClassDefFoundError です。これがログキャットです。

ログ

これを行う適切な方法は何ですか?

ありがとう!

4

1 に答える 1

2

埋め込みjarを使用するJarファイルは、JarClassLoaderなどのカスタムクラスローダーを定義する必要があります。

単一のjarファイルを使用する場合は、OneJar、JarJar、ProGuardなどのオプションもあります。

于 2013-01-16T20:35:14.050 に答える