koza_yo 0 Styczeń 9, 2020 Udostępnij Styczeń 9, 2020 55 minut temu, Matthew11 napisał: Z informacji, które podałeś strzelam, że chodzi o brak #include <QBluetoothDeviceDiscoveryAgent> w pliku mainwindow.h. Jeśli masz dołączoną klasę, a nadal masz taki błąd to może w pliku .pro brakuje QT += bluetooth. No właśnie tu jest chyba pies pogrzebany, ale nie wiem jak dołączyć tą nową klasę do QT i skąd wziąć pliki, bo pod linkiem znalazłem tylko opis klasy... Problem zapewne jest trywialny, ale jako laik w temacie przerósł mnie jak narazie... Cytuj Link to post Share on other sites
Matthew11 148 Styczeń 9, 2020 Udostępnij Styczeń 9, 2020 (edytowany) 5 godzin temu, koza_yo napisał: No właśnie tu jest chyba pies pogrzebany, ale nie wiem jak dołączyć tą nową klasę do QT i skąd wziąć pliki, bo pod linkiem znalazłem tylko opis klasy... Problem zapewne jest trywialny, ale jako laik w temacie przerósł mnie jak narazie... Ok, spokojnie. Generalnie Qt składa się z wielu różnych modułów, np. QtCore, QtBluetooth, QtNetwork itp. I teraz w ramach każdego modułu masz X różnych klas, np. w ramach modułu QtBluetooth wspomnianą QBluetoothDeviceDiscoveryAgent. I teraz jak wiesz ze chcesz skorzystać w takiej klasy musisz najpierw poinformować system budowania żeby dołączył dany moduł, robisz to właśnie w pliku o nazwie projektu z rozszerzeniem .pro - (nazwaProjektu.pro). Jak otworzysz ten plik to masz np.: QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets I teraz chcąc skorzystać z klasy QBluetoothDeviceDiscoveryAgent to w dokumentacji tej klasy masz taką tabelkę gdzie znajdziesz (chodzi o wiersz z qmake) Header: #include <QBluetoothDeviceDiscoveryAgent> qmake: QT += bluetooth Since: Qt 5.2 Inherits: QObject Czyli wiesz, że musisz w pliku .pro dopisać: QT += core gui bluetooth I teraz jeśli chodzi o pliki tej klasy, to nie musisz ich brać znikąd, bo one będą już w postaci skompilowanych bibliotek dostarczone wraz z zainstalowaniem Qt, więc jedyne co robisz, to w pliku gdzie chcesz skorzystać z tej klasy np. w mainwindow.h, dodajesz: #include <QBluetoothDeviceDiscoveryAgent> Dokładnie tak samo było to pokazane w 4 części. Dla szybkiego testu, pobierz gotowy kod z 4 części i spróbuj go zbudować. Jeśli nadal będziesz miał problemy, to podaj jak najwięcej informacji i będziemy szukać. Edytowano Styczeń 9, 2020 przez Matthew11 2 Cytuj Link to post Share on other sites
koza_yo 0 Styczeń 9, 2020 Udostępnij Styczeń 9, 2020 8 minut temu, Matthew11 napisał: O Dokładnie tak samo było to pokazane w 4 części. Dla szybkiego testu, pobierz gotowy kod z 4 części i spróbuj go zbudować. Jeśli nadal będziesz miał problemy, to podaj jak najwięcej informacji i będziemy szukać. No niestety ostatecznie pobrałem ten gotowy kod i z niego wyskoczyły mi te błędy (było ich mniej niż moim kodziem, ale nadal niestety ), dlatego myślałem ze trzeba uzupełnić biblioteki ale nie wiedziałem jak... Cytuj Link to post Share on other sites
koza_yo 0 Styczeń 11, 2020 Udostępnij Styczeń 11, 2020 Dzięki @Matthew11 za pomoc, temat rozwiązany Cytuj Link to post Share on other sites
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Szukasz producenta PCB? Sprawdź firmę JLCPCB. Dlaczego warto? • Prototypy PCB 2-warstwowe za 2$ (gotowe w 24 godziny) • Prototypy PCB 4-warstwowe za 5$ • Montaż SMT od 7$ • Produkcja w profesjonalnej fabryce (zobacz film) Sprawdź też » Jak powstaje PCB? Wycieczka po fabryce
Treker 2529 Styczeń 11, 2020 Udostępnij Styczeń 11, 2020 6 godzin temu, koza_yo napisał: Dzięki @Matthew11 za pomoc, temat rozwiązany Podpowiedz może co ostatecznie pomogło - na pewno przyda się komuś w przyszłości Cytuj Link to post Share on other sites
Matthew11 148 Styczeń 11, 2020 Udostępnij Styczeń 11, 2020 (edytowany) 1 godzinę temu, Treker napisał: Podpowiedz może co ostatecznie pomogło - na pewno przyda się komuś w przyszłości Wyręczę @koza_yo, problem był bardzo prosty, ale zdradliwy. Mianowicie @koza_yo stworzył swój projekt powiedzmy o nazwie X, do którego przekopiował zawartość plików z projektu dołączonego do artykułu czyli projektu o nazwie Qt_Forbot_BluetoothCommunication. Przekopiował również zawartość pliku .pro, w którym znajdowała się linijka "TARGET = Qt_Forbot_BluetoothCommunication". Czyli w projekcie X chciał zbudować program dla projektu Qt_Forbot_BluetoothCommunication przez co system budowania rzucał błędami, prawdopodobnie żeby zadziałało, należałoby zmienić linię (tą z TARGET) na "TARGET = X". Aby uniknąć takich błędów, poprawnym podejściem byłoby skopiowanie tylko zawartości plików mainwindow.h/cpp pod warunkiem, że nazywałyby się tak samo w obu projektach, a plik .pro zostawić nietknięty. Natomiast tworząc nowy projekt korzystając z nowszych wersji Qt (nie wiem konkretnie od której, ale w moim przypadku przy wersji 5.12.6) w pliku pro nie znajdziemy już definicji TARGET, jest ona prawdopodobnie zapożyczana z nazwy pliku .pro. Edytowano Styczeń 11, 2020 przez Matthew11 1 Cytuj Link to post Share on other sites
KrisU12 0 Marzec 31, 2020 Udostępnij Marzec 31, 2020 Witam wszystkich. Niestety też mam problem. Nie jestem pewien, czy jest on analogiczny do tych, które były tu poruszane - jeśli tak z góry przepraszam (nie mam zbyt dużego doświadczenia). Przejdę zatem do sedna. Próbuje wgrać aplikacje testową na swojego smartfona. Podążałem krok po kroku zgodnie z instrukcjami zawartymi w artykule i wykonywałem je na tyle starannie, że np. nie wykrywało u mnie niekompatybilnych urządzeń, podczas próby wgrywania aplikacji. Niestety ciągle napotykam na błędy, które są ukazane na zdjęciu. Może ktoś ma pomysł co mogę zrobić, by móc przejść dalej? Bardzo proszę o pomoc. Pozdrawiam! Cytuj Link to post Share on other sites
Matthew11 148 Kwiecień 1, 2020 Udostępnij Kwiecień 1, 2020 (edytowany) Cześć @KrisU12 u Ciebie problem nie polega na trudności wgrania aplikacji na telefon, tylko znacznie wcześniej - na próbie jej zbudowania na system Android. Błędy, które pokazałeś to błędy (jeśli dobrze to interpretuje) które wyrzuca kompilator. Co jasno wskazuje na to, że brakuje plików nagłówkowych, które powinny znaleźć się w NDK (inna osoba na forum Qt ma taki sam problem - link) - brakuje type_traits i memory. Wygląda na to że masz uszkodzone lub niekompletne pliki NDK. W linku - tamta osoba skopiowała folder z NDK zanim ten został do końca wypakowany z archiwum. W tym linku z takim samym problemem, polecają sprawdzić czy masz najnowsze NDK i SDK i w opcjach projektu ustawić wyższy poziom API niż 16. Znajdziesz to odpowiednio długo grzebiąc w zakładce "Projects" na lewym pasku, gdzieś w opcjach dotyczących Build (raczej w tej zakładce) i Run - nie mam jak tego sprawdzić teraz. Kilka rzeczy do sprawdzenia wcześniej: czy na Twój komputer aplikacja buduje się bez problemów? jeśli tak to: zmień urządzenie na telefon i nie wgrywaj od razu aplikacji na telefon (przycisk run), tylko zwykłe budowanie (młotek) - powinieneś mieć ten sam błąd co pokazujesz. Gdy nie znajdziesz odpowiedzi szukając w google "qt `type_traits' file not found" lub nie pomogą zmiany wersji NDK lub SDK, to dobrym pomysłem, może być przejście na nieco starszą wersję np. 5.12.x (obecnie chyba 5.12.7 jest najnowsza). Bez dostępu do Twojego komputera lub takiego samego problemu u mnie, więcej nie jestem w stanie pomóc. Edytowano Kwiecień 1, 2020 przez Matthew11 1 Cytuj Link to post Share on other sites
KrisU12 0 Kwiecień 2, 2020 Udostępnij Kwiecień 2, 2020 Dnia 1.04.2020 o 09:56, Matthew11 napisał: @Matthew11 Serdeczne dzięki za wyczerpujący post. Problem został rozwiązany. Próbowałem dobrać różne wersje NDK, nie zmieniając SDK i w ostateczności wszystko zaczęło prawidłowo działać przy konfiguracji takiej jak: SDK Version: 26.1.1, NDK Version: 20.1.5948944. Tak, czy inaczej dzięki wielkie za zredagowanie tego kursu. Pozdrawiam! Cytuj Link to post Share on other sites
Matthew11 148 Kwiecień 27, 2020 Udostępnij Kwiecień 27, 2020 Nowa wersja QtCreatora - 4.12 - niesie sporo usprawnień w przypadku Androida: Cytat The whole Android setup got a big update in this version of Qt Creator. You have the option to automatically download and install the required Android tools. Multiple NDKs can be registered, and the correct one is chosen for the project's Qt version. We added support for Android 11 with API level 30, and fixed issues with the latest SDK. The issue that the ABI selection in build configurations did not persist is fixed now. Sporo problemów z konfiguracją, które zostały tutaj opisane może zostało już rozwiązanych wraz z nową aktualizacją. 2 Cytuj Link to post Share on other sites
Matthew11 148 Maj 1, 2020 Udostępnij Maj 1, 2020 (edytowany) Od wersji Qt 5.14 lub wyższej mamy nieco inaczej zorganizowaną obsługę różnych ABI dla naszych urządzeń. Wcześniej mieliśmy kilka kitów dla każdego ABI, teraz zostało to zunifikowane i dzięki temu można budować program jednocześnie na kilka architektur. Jednak pracując z konkretnym urządzeniem musimy jakoś wybrać docelowe ABI. Wcześniej wybieraliśmy docelową architekturę za pomocą przycisku: Teraz musimy wejść w ustawienia projektu: Następnie pod nagłówkiem Build Steps, wybrać interesujące nas ABI: Mogę posłużyć się pomocą QtCreator'a, który po kliknięciu przycisku Deploy pokaże mi jakie ABI obsługuje moje urządzenie: W moim przypadku: x86, armeabi-v7a armeabi I takie wybrałem w ustawieniach projektu. Jeśli nie ustawisz odpowiedniego ABI, Twoja aplikacja nie uruchomi się na Twoim urządzeniu. Więcej informacji https://www.kdab.com/qt-for-android-better-than-ever-before/ https://www.qt.io/blog/qt-5.14-android-multi-abi-and-cmake Edytowano Maj 1, 2020 przez Matthew11 1 Cytuj Link to post Share on other sites
bigrom 3 Maj 18, 2020 Udostępnij Maj 18, 2020 Po zainstalowaniu dużej ilości GB i odinstalowaniu udało się zainstalować Q5.14.2 z android-ndk-r20b oraz jdk1.8.0_191 oraz Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android) udało się uruchomić aplikację. 2 Cytuj Link to post Share on other sites
lukaskot779 0 Listopad 6, 2020 Udostępnij Listopad 6, 2020 Witam, mam problem w Qt Creator 4.13.2. Mam wersje: SDK Version: 3.0, NDK Version: 21.1.6352462 i podczas budowania występuje u mnie problem: "You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK." Rozumiem że chodzi o coś ze zmiennymi środowiskowymi w systemie ale nie rozumiem. Jestem zielony w temacie więc proszę o wyrozumiałość Cytuj Link to post Share on other sites
Matthew11 148 Listopad 6, 2020 Udostępnij Listopad 6, 2020 @lukaskot779 Napisz proszę konkretnie jaki masz system (Windows czy Linux) i jaka wersja Qt. 2 godziny temu, lukaskot779 napisał: SDK Version: 3.0 Na pewno SDK 3.0? 1 Cytuj Link to post Share on other sites
lukaskot779 0 Listopad 9, 2020 Udostępnij Listopad 9, 2020 Dnia 6.11.2020 o 17:59, Matthew11 napisał: @lukaskot779 Napisz proszę konkretnie jaki masz system (Windows czy Linux) i jaka wersja Qt. Na pewno SDK 3.0? Tak mam napisane, że 3.0 (załączam screena). Mam system Windows 10 Home, a moja wersja Qt, to "Qt Creator Manual 4.13.2" Cytuj Link to post Share on other sites
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!