2016-02-15 5 views
5

私は私のアプリを実行したとき、それははできませんインスタント実行:のDalvikランタイム上のレガシーマルチDEX

インスタント実行できないことを言った:のDalvikランタイム

上のレガシーマルチDEXは、それがあることを意味していマルチデックスを使用するとInstant Runを使用できませんか?

私はAndroid Studio beta4を使用しています。

+0

公式ウェブサイト上でこれを読む:「65K方法の限界に近いメインDEXファイルと(minSdkVersionが<21で)レガシーマルチDEXを使用しているアプリは、ビルドしない場合があります。これは、リワークが必要になります。メインのdexファイルに必要なクラスの数を減らすことによって、メインのdexリストに空き領域を確保する " – Harisewak

答えて

0

ちょうど削除あなたのプロジェクト名/アプリ/ build.gradle

android { defaultConfig { multiDexEnabled true } }

からこの行を削除真をmultiDexEnabled、あなたがインスタント実行することができます。

+0

デックスを分けるのに必要です。 –

3

あなたは、真multiDexEnabledを設定依存関係を追加し、MultiDexApplicationからアプリケーションクラスを拡張したり、アプリケーションのクラスにMultiDex.install(この)を起動する必要があり、古いアンドロイドのバージョンでmultiDexを活性化するために従来のmultiDexのインストールが発生します。

しかし、Intant Runは従来のmultiDexで動作できないので、通常のものを使用する必要があります。 以外の上記コードをすべて削除する必要があるのは、multiDexEnabledフラグをに設定して、に設定するだけです。この方法は、API 21以上のデバイスでのみサポートされています。

何かが間違っている場合は、気軽に修正してください。

+0

あなたはそうですが、私はApi21モバイルを持っていません。 –

+0

おそらくプロガードと小型化があなたを助けることができます。新しいデバイスがなければ他の方法はないようです。 – Tieru

+0

Btw、エミュレータでは即座に動作します。あなたは新しいGoogleエミュレータまたはGenymotionを使用することができます – Tieru

0

ドキュメントに記載されているとおり、APIレベル20以下でmultidexが有効で、APIレベル20以下でアプリがデプロイされている場合、Instant RunはAndroid Studioによって無効にされます。

Documentation link

関連する問題