2013-05-22 20 views
43

Uczę się Androida w ciągu ostatnich kilku miesięcy i używam Eclipse Juno jako mojego IDE.Android Studio wyklucza klasę z kompilacji?

Próbuję przeprowadzić migrację do systemu Android-Studio i zastanawiam się, w jaki sposób mogę "wykluczyć ze ścieżki budowania" niektóre z klas, które jeszcze muszę ukończyć?

W środowisku Eclipse kliknięcie było proste. Nie mogę znaleźć żadnego odniesienia do niego w Studio.

+1

Jeśli uczysz się, dlaczego starasz się migrować do niepublikowane, produktu podglądu, która wymaga doświadczenia, aby skutecznie wykorzystywać i obejść różnych błędów w to? – Simon

+1

Dobre pytanie Simon. Widzę napis na ścianie. Poza tym, pomiędzy dokumentacją a StackOverflow, udało mi się zbudować aplikację stosującą najlepsze praktyki. – Beyond4D

Odpowiedz

69

AFAIK IntelliJ pozwala na wykluczenie pakietów. Otwórz strukturę projektu (Ctr + Alt + Shift + S w systemie Linux)> Moduły> Zakładka Źródła.

Jeśli jednak chcesz wykluczyć tylko jedną klasę, użyj pliku kompilacji Gradle.

Android Studio wykorzystuje Gradle więc w pliku build.gradle dodać wewnątrz android konfiguracji niestandardowej SourceSet że wyklucza swoją klasę np:

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
    minSdkVersion 19 
    targetSdkVersion 19 
    packageName "org.homelab.lab" 
    testPackageName "org.homelab.lab.test" 

    } 
    sourceSets { 
    main { 
     java { 
      exclude '**/SomeExcludedClass.java' 
     } 
    } 
    androidTest { 
     java { 
      exclude '**/TestSomeExcludedClass.java' 
     } 
    } 
    } 
} 
+0

Doskonały. Dziękuję Ci. Jestem pewien, że przyszłe wydania będą dostępne w menu z prawym przyciskiem myszy? – Beyond4D

+0

Czy możemy wykluczyć pliki w typach kompilacji? Jeśli to możliwe, czy możemy zrobić to w taki sam sposób jak w sourceSets? – Ahmed

+0

możesz w smakach – robotoaster

6

To nie może być zrobione.

Może wróci w maju 13, kiedy zaakceptowana odpowiedź zostanie dostarczona, ale już nie (od 1.2).

Oto problem:
https://code.google.com/p/android/issues/detail?id=64957

Według etykiety są targetting AS 1.5 do dodawania te funkcję.

+0

To łącze mówi: "Komponenty java/resources z zestawów źródłowych pozwalają na włączanie/wyłączanie wzorców. Powinniśmy to zrobić dla helpl/rs/jni/assets." Wygląda na to, że spodziewają się, że wyłączą się "java". –

+0

@BrianWhite Dzięki za poprawkę. Cieszę się, że jest to obsługiwane. – Tom

+0

Nie, to nie jest obsługiwane. Przynajmniej to nie działa dla mnie. Chodzi tylko o to, że problem wyraźnie wspomina o helpl/rs/jni/assets, ale nie o java. –

0

Działa dobrze z Android Studio v3.0

apply plugin: 'com.android.application' 

android { 
    defaultConfig {...} 
    buildTypes {...} 
    sourceSets { 
     main { 
      java { 
       exclude 'com/example/full/package/path/MainActivity.java' 
      } 
     } 
    } 
} 
Powiązane problemy