動作中のアプリがあり、昨日の SDK Tools リリース v22.2 に更新されました。それ以来、デバイスでアプリケーションを実行できませんでした。Android プライベート ライブラリがデフォルトでエクスポートされないという問題を発見したので、それを修正したところ、「Delvyk に変換できません。dex に失敗しました... ヒープ...」というエラーが発生しました。クラスパスを数回再構築し、google-play-services プロジェクトを再インポート (ワークスペースにコピー) し、ビルド設定を変更するなどしましたが、アプリをデバイスで実行できませんでした。次に、ant でビルドしてから、apk を手動でインストールしてみました。このアプローチにより、アプリは実行されましたが、すぐにこの問題が発生しました: Google Play サービスを更新しない限り、このアプリは実行されません
既存の依存関係を変更していなかったにもかかわらず、ビルド パスを掘り返して、google-play-services-lib.jar が Android Dependencies に含まれていることに気付きました。プロジェクトの依存関係であり、Android Private Libraries の下にも表示されます。
これが私の.classpathです:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry combineaccessrules="false" kind="src" path="/anKHToolbox"/>
<classpathentry combineaccessrules="false" kind="src" path="/google-play-services_lib"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
同じように構成された別のワークスペース プロジェクトの依存関係 (anKHToolbox) がありますが、これはこれを行いません。[エクスポートと注文] タブで Android プライベート ライブラリを無効にする簡単なテストを行うと、アプリがデバイスで起動しますが、依存関係がないために明らかに停止します。
両方の結果 (dex ヒープの失敗、および Google Play サービスの更新のプロンプト) は、jar が 2 回参照されるというこの状態に完全に関連していると思います。関連する可能性のある別の問題が見つかりましたdex を実行できません: 複数の dex ファイルが Lcom/myapp/R$array を定義します。しかし、解決策が何であったか、またはそれが実際に関連しているかどうかはわかりません。
他の誰かがこれを確認できますか、または私が見逃した変更を行う必要があるか教えてもらえますか? これは潜在的なバグだと思い始めています。皆さんありがとう。