8

Pracuję nad aplikacją na Androida za pomocą Android Studio 2.1.3 i gradle.Android studio gradle breakpoint Nie znaleziono kodu wykonywalnego w linii

Problem polega na tym, że punkt przerwania w prostej metodzie nigdy nie zostaje trafiony, chociaż musi zostać trafiony, ponieważ warunek jest spełniony podczas debugowania aplikacji.
Najpierw myślałem, że problem jest związany z problemu opisanego w odpowiedzi na to pytanie: BuildConfig.DEBUG always false when building library projects with gradle

Aby to sprawdzić, usunąłem projektu biblioteki i zintegrowany cały mój kod źródłowy do głównego modułu aplikacji. Nic nie rozwiązało. Należy zauważyć, że następujące jest build.gradle, gdzie Minify jest ustawiona na false zarówno debug/release:

apply plugin: 'com.android.application' 
 

 
android { 
 
    compileSdkVersion 23 
 
    buildToolsVersion "23.0.2" 
 
    defaultConfig { 
 
     applicationId "com.mycompany.mymobileapp" 
 
     minSdkVersion 21 
 
     targetSdkVersion 21 
 
     versionCode 1 
 
     versionName "1.0" 
 
    } 
 
    buildTypes { 
 
     release { 
 
      minifyEnabled false 
 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
 
      debuggable true 
 
      jniDebuggable true 
 
      renderscriptDebuggable true 
 
      zipAlignEnabled false 
 
     } 
 
     debug { 
 
      debuggable true 
 
      minifyEnabled false 
 
      zipAlignEnabled false 
 
      jniDebuggable true 
 
      renderscriptDebuggable true 
 
     } 
 
    } 
 
    productFlavors { 
 
    } 
 
} 
 
    
 
dependencies { 
 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
 
    testCompile 'junit:junit:4.12' 
 
    testCompile 'org.mockito:mockito-core:2.0.5-beta' 
 
    testCompile 'com.android.support:support-v4:23.1.1' 
 
    testCompile 'org.powermock:powermock-api-mockito:1.6.2' 
 
    testCompile 'org.powermock:powermock-module-junit4-rule-agent:1.6.2' 
 
    testCompile 'org.powermock:powermock-module-junit4-rule:1.6.2' 
 
    testCompile 'org.powermock:powermock-module-junit4:1.6.2' 
 
    compile 'com.android.support:appcompat-v7:23.1.1' 
 
}

Oto zrzut ekranu z tym, co Android Studio pokazuje mi:

No executable code found problem

nie jest to również jedyny przypadek. Zdarza się, że kompilator podczas przechodzenia przeskakuje do zupełnie innej części kodu niż debugowana.

Czy istnieje tutaj uzasadnione wytłumaczenie? Zawieszenie: "wątek" i "wszystko" wypróbowane, ten sam wynik.

AKTUALIZACJA 1: Ponownie utworzono projekt przy użyciu środowiska Eclipse i wszystko działa poprawnie. To wciąż niesamowite, dlaczego korzystanie z Androida to nie działa!

Odpowiedz

6

Po ponownym tworzeniu aplikacji przy użyciu Eclipse i obserwując poprawne zachowanie, wróciłem do Android Studio w celu sprawdzenia, czy istnieje możliwość, że tęskniłem.

Po wypróbowaniu wszystkich opcji z pliku -> Ustawienia, które mogłem, doszedłem do wniosku, że Natychmiastowy bieg jest złem, które zmusiło mnie do zmarnowania tak cennego czasu.

ja nie rozumiem, jak to jest związane z moim problemem, ale po wyczyszczeniu wszystkich pól wyboru:

enter image description here

skończyło się za pomocą kodu, który wykonuje sposób ja jako deweloper oczekiwać:

enter image description here

+0

To nie jest rozwiązanie tego problemu ... Natychmiastowy przebieg działa dobrze przez większość czasu. Zmarnowałeś swój czas tylko dlatego, że nie wiedziałeś, że czyste jest zawsze pierwszą opcją, gdy natrafisz na ten problem w dowolnym edytorze, co jest dobrze znane. Ale chciałbym się dowiedzieć, czy jest jakiś raport o błędzie na to, czy co, ponieważ powoduje to również moje orzechy, nawet jeśli zdarza się to tylko raz w tygodniu. – Renetik

+0

W moim przypadku działo się to przez cały czas. Chcesz dyskutować z C, C++, C# i Java wieloma redaktorami i 6 latami doświadczenia i powiedzieć mi, że nie wiem jak wyczyścić projekt? Proszę nie pisać już takich bezużytecznych komentarzy. Niestety nie mogę nie głosować na twój komentarz. To samo mi się nie zdarza. Dyskutowano z wieloma innymi pełnoetatowymi programistami Androida i mają natychmiastowe wyłączenie domyślnie z powodu takich błędów. – XMight

+0

OK, więc oczyściłeś projekt i hamulec jeszcze nie zadziałał? Jest to więc inny problem, ponieważ to się nigdy nie zdarza z włączonym natychmiastowym uruchomieniem i używam go od czasu wydania wersji beta. Nie wspomniałeś raz, że oczyściłeś projekt w swojej odpowiedzi i pytaniu, więc w jaki sposób mój komentarz jest bezużyteczny. Głosuj, jak chcesz. To do czego służy. – Renetik

0

spróbuj oczyścić i odbudować projekt. spróbuj zrobić kilka logowania w tej metodzie, aby sprawdzić, czy jest on wykonywany.

LOG.(TAG,"method being executed") 
+0

Czystość jest dobrym rozwiązaniem, ale gdzie jest raport o błędzie w tym numerze, powinienem zagłosować na poprawkę? Muszę poczekać 4 minuty po tym, jak uderzę w czyste to nie za dużo Instant Run. – Renetik

8
buildTypes { 

release { 
    minifyEnabled true 
    shrinkResources true 
    proguardFiles getDefaultProguardFile('proguard-android.txt') 

} 
debug { 
    debuggable true 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt') 

} 

}

Zestaw minifyEnabled false w bloku debugowania w pliku build.gradle.

+0

To zadziałało. Po prostu dodaj Clean & Build. Pozdrawiam @vinod – ralphgabb

2

Miałem do czynienia z podobnym problemem.

Próbowałem:

  • Czyszczenie projekt
  • Resetowanie Android Studio
  • Przebudowa projektu
  • Wyłączenie Instant Run

i to nie działa.

Wszystko zrobiłem w końcu, aby praca była Ctrl + Przesunięcie + +. To jest skrót do rozwijania wszystkich bloków kodu. Po prostu uruchomiłem projekt po tym i zadziałało.

+1

Zrobiłem to samo i nic nie pomogło. -_- Zwariowany. – garbus