Ten błąd wystąpił podczas próby wygenerowania podpisanego pliku APK. Rzecz w tym, że moja aplikacja może normalnie uruchamiać i debugować na moim urządzeniu. Nie wiem, dlaczego podczas próby wygenerowania pliku APK wystąpił ten błąd. Jak zignorować ten błąd i wygenerować podpisany plik APK? Korzystam z Androida Studio 1.2.1.1 na Maca.Jak zignorować błąd "unikaj domyślnych konstruktorów w fragmentach"?
Odpowiedz
Znaleziono rozwiązanie. Łatwiej sposobem jest dodanie ich do Gradle:
android {
lintOptions {
checkReleaseBuilds false
}
}
albo innym sposobem jest dodanie @SuppressLint("ValidFragment")
Nie powinieneś mieć konstruktora innego niż domyślny we fragmencie. Możesz dodać metodę statyczną, taką jak getInstance (twoje argumenty ...) i stwórz z niej nowy fragment i ustaw te argumenty na swoim fragmencie. – Heisenberg
Zobacz ten przykład: http://www.androiddesignpatterns.com/2012/05/using- newinstance-to-instantiate.html – Heisenberg
Praca Dziękuję :) – InsaneCat
To jest w umowie Fragmentu: "Każdy fragment musi mieć pusty konstruktor, więc można go utworzyć podczas przywracania jego stanu aktywności. Zaleca się, aby podklasy nie miały innych konstruktorów z parametrami, ponieważ konstruktory te będą nie jest wywoływane, gdy fragment jest ponownie tworzony, zamiast tego argumenty mogą być dostarczane przez wywołującego za pomocą zestawu setArguments (Bundle), a następnie pobierane przez Fragment za pomocą funkcji getArguments(). "
wyłączenie lint
zupełnie nie jest przyzwoity rozwiązanie, jeśli nadal chcą korzystać z zalet tego. Jeśli ktoś napotka to uważam, wyłączając tylko bardziej eleganckie rozwiązanie konkretnego błędu:
android {
lintOptions {
disable 'ValidFragment'
}
}
Dla mnie tylko pracował kombinację dwóch poprzednich odpowiedzi:
android {
lintOptions {
disable 'ValidFragment'
checkReleaseBuilds false
}
}
jednak pamiętać, że te A Zła łatka, aby uniknąć ostrzeżeń/błędów lint, rozwiązaniem jest dostosowanie konstruktora Fragment do publicznego statycznego konstruktora Fragment newInstance (params) Fragment.
- 1. Błąd innych niż domyślne konstruktorów w fragmentach
- 2. Inicjalizacja macierzy elementów C++ bez domyślnych konstruktorów
- 3. Jak zignorować błąd mv?
- 4. Niestandardowe atrybuty w fragmentach Androida
- 5. Jak poruszać się w fragmentach?
- 6. jak dodać tabhost w fragmentach
- 7. jak zignorować samozapisany błąd certyfikatu node.js soap.js
- 8. Używanie onBackPressed() w fragmentach Androida
- 9. implementacja AsyncTask w Fragmentach android
- 10. Zmiana domyślnych układów domyślnych
- 11. Inicjowanie odtwarzacza YouTube w Fragmentach
- 12. jak generować konstruktorów w eclipse
- 13. błąd: polimorficzny wyrażenie z domyślnych argumentów
- 14. Jak zrobić Git tymczasowo zignorować ~/.gitconfig?
- 15. Jak uniknąć konstruktorów kodów?
- 16. Nie mogę zdefiniować wartości domyślnych, jeśli zdefiniuję wiele przeciążonych konstruktorów w Scali?
- 17. ELMAH zalogować sposób zignorować błąd według typu
- 18. Błąd - żaden z konstruktorów znalezionych w 'Orchard.Environment.AutofacUtil.DynamicProxy2.ConstructorFinderWrapper'
- 19. Zawieranie konstruktorów w podpisie
- 20. Najbardziej "pythonic" sposób organizowania atrybutów klas, argumentów konstruktora i domyślnych konstruktorów podklasy?
- 21. Wiele konstruktorów w python?
- 22. Jak mogę zignorować błąd opcjonalnego parametru na MSBuild 3,5
- 23. Zakres konstruktorów modułu w SML
- 24. eclemma - jak zignorować źródło
- 25. Jak mogę zignorować nadklasę?
- 26. Ant: Jak mogę zignorować błąd kompilacji, jeśli katalog nie istnieje?
- 27. Jak wykonać żądanie HTTPS z Phoenix i zignorować błąd CA
- 28. Jak zignorować [XMLIgnore] Atrybut
- 29. Android: Wiele przekąsek w osobnych Fragmentach (ViewPager)
- 30. Nadpisywanie konstruktorów
jaki błąd, czy możesz opublikować błąd? – 3xplore
Powinieneś zawsze zostawić puste fragmenty counstruktorów, wszystkie prace inicjalizacyjne powinny być wykonywane w onCreate(). – pawelo
Cóż, bardziej interesuje mnie ignorowanie błędu. Dlaczego moja aplikacja może działać normalnie bez błędów podczas debugowania, podczas generowania pliku APK pojawia się tylko ten komunikat o błędzie? – user2872856