2016-05-22 3 views
1

Wenn targetSdkVersion unter in meinem Projekt festgelegt ist, funktioniert der Build groß und Projekt ordnungsgemäß ausgeführt. Hier ist build.gradle Datei:Instant Run werfen DexIndexOverflowException

defaultConfig { 
     applicationId "com.air" 
     minSdkVersion 14 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 

Aber wenn targetSdkVersion gesetzt und Instant Lauf aktiviert ist, wirft es diese Ausnahme:

com.android.dex.DexIndexOverflowException: Verfahren ID nicht in [0, 0xffff]: 65536

Warum?

Instant Run ist etwas verwirrend für mich. Mir ist unklar, wie es in Android Studio funktioniert.

+3

Haben Sie es überhaupt googlen? 'Instant Run: Diese Funktion soll Ihren Workflow dramatisch verbessern, indem Sie Änderungen, die auf Ihrem Gerät oder Emulator ausgeführt werden, schnell sehen können. Sie können sehen, dass Ihre Änderungen "in kürzester Zeit" ausgeführt werden, was bedeutet, dass Sie Ihre App fortlaufend codieren und ausführen können. Dies beschleunigt hoffentlich Ihre Bearbeitung, Erstellung und Ausführung von Zyklen. Wenn Sie auf die Schaltfläche "Instant Run" klicken, werden die von Ihnen vorgenommenen Änderungen analysiert und festgelegt, wie der neue Code auf die schnellste Weise bereitgestellt werden kann. Instant Run funktioniert mit jedem Android-Gerät oder Emulator, auf dem API 14 (Ice Cream Sandwich) oder höher läuft. – Doomsknight

+0

http://tools.android.com/tech-docs/instant-run – Mohsen

+0

http://venturebeat.com/2016/ 04/07/google-lances-android-studio-2-0-mit-instant-run-schneller-android-emulator-und-cloud-test-lab/ Wie Sie sehen können, gibt es viele Antworten bereits da draußen . :) – Doomsknight

Antwort

1

Sie ermöglicht eine schnelle Entwicklung, da bei jeder Änderung am Code Ihrer App keine vollständige Erstellung und erneute Implementierung der APK erforderlich ist. Es drückt nur die vorgenommenen Änderungen und stellt sie sofort zur Verfügung. Es gibt drei Arten von Swaps - HOT, WARM und COLD. (In aufsteigender Reihenfolge der Zeit, um die Änderungen gemacht)

HOT SWAPS wird ausgelöst, wenn

ändert Implementierungscode einer bestehende Instanzmethode oder statische Methode

WARM SWAPS werden ausgelöst, wenn

Ändern oder Entfernen einer bestehenden Ressource

COLD SWAPS ausgelöst werden, wenn

Struktur Code ändert

Um das genaue Verhalten und verschiedene Szenarien zu verstehen beziehen the official documentation

2

Anstatt eine neue APK zu bauen, es drückt nur diese neuen Veränderungen, und in einigen Fällen ist die App nicht einmal neu starten müssen, sondern sofort zeigt die Auswirkungen dieser Änderungen am Code.

In Instant Run werden aktualisierter Code und Ressourcen zu Ihrem verbundenen Gerät oder Emulator gepusht, indem ein Hot-Swap, ein Warm-Swap oder ein Cold-Swap durchgeführt wird.

https://developer.android.com/studio/run/index.html