Kaikki alkoi siitä että fontit renderöityi väärin HTC Desiere HD:ssä (Android luuri). Eli oheisen kuvan tavalla.
Lue ohje kokonaisuudessaan läpi kerran ennen kuin alat tekemään mitään, että hahmoitat mitä tulee tehdä.
On hyvä asentaa kyseiset paketit Ubuntussa komennoilla:
sudo apt-get install build-essential perl python git
sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby
sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
Tämän jälkeen pitää ladata lähdekoodit gitistä komennolla:
git clone git://gitorious.org/qt/qt5.git qt5
Tämän jälkeen mene kyseiseen kansioon: cd qt5.
Aja kansiossa kyseinen komento:
git checkout 5.3.1.
Tämän jälkeen aja samaisessa kansiossa komento: perl init-repository (Huom. Tarvitset perilin asennettuna koneella).
Tarvitset myös Ant:in jonka voit asentaa komennolla: sudo apt-get install ant (Tarvitaan Android kehitysympäristössä).
Nyt olisi valmista tarvittavien pakettien suhteen.
Sitten tarvitaan myös kääntämiseen
NDK,
SDK.
Pura paketit.
Seuraavaksi aja export komennot (PATH):
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/bin/
export ANDROID_SDK_ROOT=/home/nikohal/qt5/qt5/adt-bundle-linux-x86-20140702/sdk
export ANDROID_API_VERSION=android-10
Seuraavaksi aja komento päätteessä: cd /kansio johon purit sdk:n/adt-bundle-linux-x86-20140702/sdk/tools. (Huom. tarkista että on sinulla oikea adt-bundle-linux-x86-****)
Sitten komento: ./android.
Tulisi avautua seuraavan näköinen ikkuna. Asenna API levelit 10, 11, 16, 19 (jonkin ohjeen mukaan..., vaikka kääntämisessä käytetään API leveliä 19).
Ollaan jo päästy sellaiseen vaiheeseen että voidaan aloittaa lähdekoodien kääntämien.
Aja komento
./configure -xplatform android-g++ -nomake tests -nomake examples -android-ndk /home/nikohal/qt5/qt5/android-ndk-r10/ -android-sdk /home/nikohal/qt5/qt5/adb-bundle-linux-x68-20140702/sdk/ -android-ndk-platform android-19 -android-ndk-host linux-x86 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors -no-dbus. Huomioi että oheisen kansio polut vastaavat sinun polkujasi ja että -android-host on oikea. Sitten vain annat ruksuttaa jonkin aikaa. (Näin sivu huomautuksena, itse käytän Virtual boxissa ubuntua). Jos konfikurointi menee läpi aja seuraavaksi
make ja jos kääntäminen menee läpi, niin seuraavaksi:
sudo make install. Sitten onkin kaikki valmista tältäosin. Avaa Qt Creator (täytyy asentaa koneelle). Löydät sen
täältä. Sitten avaa valikko Tools -> Options -> välilehti Android. Lisää polut oikein oheisen kuvan mukaan.
Sitten avaa välilehti Build & Run -> välilehti Kits-> Add (Lisää qmake/kirjastot). Hae polku /usr/local/Qt-5.3.1. Tämän jälkeen tulisi näkyä seuraava (Kuva yläpuolella).
Lisää puhelin usb kaapelilla koneeseen. Sitten tarvitaan asetus Virtualboxissa eli lisää puhelin usb:n kautta virtuaalikoneeseen.
Tätä ennen on hyvä laittaa puhelimessa asetus päälle: Asetukset-> Sovellukset->Kehitys. Valitse Usb-korjaaminen ja Näyttö päällä (Tämä siis HTC Desiere HD:ssä).
Tämän jälkeen korjaa projektia hieman.
Avaa Projects sivu (Pikanäppäin ctrl+5). Avaa Build Environments. Add eli lisää seuraava rivi, ks. kuva.
Kun ajat Android projektin Qt Creatorissa tuli ponnahtaa oheisen kuvan näköinen ikkuna ->
Sitten vain ok. Qt Creator kääntää ja ajaa sovelluksen puhelimessa (Olet nörtti tässä vaiheessa :D).
Eli fontti renderöintiä ei ole vielä korjattu.
Avaa kansio qt5/qtbase/src/plugins/platforms/android. Etsi tiedosto: qandroidplatformopenglcontext.cpp. Avaa jossain teksti editorissa ja lisää oheinen rivi kyseiseen kohtaan eli qDebug() << rendererString;.
Käännä qt5 uudestaan, konfigurointia ei tarvita vaan aja make päätteessä. Tämän voit toki tehdä kaikkea ennen eli kohdassa jossa aletaan kääntämään qt 5:sta ensimmäistä kertaa.
Välilehdellä Compile Output näet viestit mitä kääntämisen aikana tapahtuu ja näet myös mitä tapahtuu kun ajat sovellusta. Oheisen ongelman kohdalla pitäisi tulla rivi jossa lukee seuraavaa: (10857): qandroidplatformopenglcontext.cpp:80 (static bool QAndroidPlatformOpenGLContext::needsFBOReadBackWorkaroud()): Adreno 205
D/Qt.
Korjaa kyseiseen tiedostoon jonka aiemmin avasit oheinen rivi:
Eli suunnileen riville 78: || qstrcmp(rendererString, "Adrero 205") == 0. Käännä tämä lisäyksen jälkeen lähdekoodit uudestaan komennolla make.
Sitten vain ajat Qt Creatorissa sovelluksesi ja näet että kyseinen fontti ongelma on ratkaistu.