Új hozzászólás Aktív témák
-
SektorFlop
aktív tag
Szerintem valami ilyesmi kell neked... http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
Ezen belül a targetSdkVersion.
Nekem is volt ilyen és asszem ez segítet, ha jól emlékszem. És nagyon örülök hogy kezd éledni a topic!
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
vz12
tag
No, kipróbáltam az ötletedet, nem változott semmi.
(pedig utána még a minSdkVersion-t is is feltettem "15"-re)Ezután egy "régi" gyakorló programomat is ráküldtem a 4.0.3-ra, ami alig volt bonyolultabb a "Hello, World"-nél, az csont nélkül ment, targetSdkVersion nélkül is.
Ekkor kezdtem gyanakodni a Splash Screen-re, amivel indult a program, és tényleg ott volt a bibi !!! Amikor kiszedtem a Splash-t, akkor már nem akadt ki. Igaz ugyan hogy néhány mp-ig csak fekete képernyőt láttam, miközben inicializálódtak az adatok (sok adat, ezért csináltam a Splash-t), de aztán elindult rendesen, ezzel a hiba behatárolódott.
Kicsit kísérleteztem a targetSdkVersion-nel, kis stílusbeli (megjelenési) különbség volt bizonyos elemeknél a megszokotthoz képest (pl. a képernyő teteje, a scrollbar, a hardveres Beállítások gomb után megjelenő menü kinézete, rádió-gombok és textboxok kinézete, ilyenek), ha viszont kiszedem akkor pontosan úgy nézett ki mint addig, tehát kiszedtem.
Ezután a neten már gyorsan megtaláltam pl. ezt, ahol leírják hogy 4.0-tól kezdve a thread-ek kezelésében a stop() kerülendő. Tudni kell, hogy a Splash-ek külön thread-ben szoktak lenni, nálam is így van. Visszatettem a Splash Screen-t, a stop()-ot lecseréltem finish()-re, és megy, nem dob ki. Pici probléma még van vele, nevezetesen hogy a splash képernyő éppen csak felvillan, majd az adataim inicializálása alatt csak a fekete képernyőt látom a "rendes" képernyő megjelenéséig, de ezt majd valahogy megoldom. Minden bizonnyal összefüggésben van a 4.0 megváltozott thread-kezelésével, mert 2.x alatt az inicializálás során végig kint van a splash.Tehát a minSdkVersion maradt "7", a targetSdkVersion nincs beállítva (vagyis az is "7"), és tulajdonképpen megy rendesen.
Azért írtam le ilyen részletesen, hogy akinek ilyen problémája van, az esetleg tudjon ötletet meríteni belőle.
-
fatal`
titán
LogCatben meg kéne nézned, valamilyen exceptiont kaptál, meg kéne nézni milyet, melyik sorban és, akkor ki tudod deríteni, hogy mi a hiba.
Szerk.: Látom közben megoldódott.
(#40) SektorFlop: A hardveres gyorsítás múlthétig nem működött egyáltalán. Frissíts a 19-es SDKra és 4.0.3 emulátort hozz létre, beállításainál hozzá tudod adni a GPU emulationt, azt yesre téve működni fog.
[ Szerkesztve ]
-
vz12
tag
Úgy tűnik, hogy a Splash Screen problémám sokat javult.
A sima egyszerű Thread helyett átírtam a splasht AsyncTask-osra egy netes példa alapján, ahol van onPreExecute, doInBackground, onPostExecute. Az onPostExecute-ba tettema stop() helyetta finish()-t (meg persze a main activity elindítását), és tul.képpen oké minden. 2.x alatt rendesen megy emulátoron és a kütyün is, ahogy eddig, tehát nem sikerült elrontani. 4.0.3-ban csak emulátoron tudtam nézni (mert ilyen kütyüm nincs), ott egy jó darabig stabilan kint van a konstans tartalmú splash képernyő, a végén egy kis szabálytalan villogást ugyan megenged magának, de remélem hogy ez csak az emulátoron van így ..., mindenesetre sokkal jobb a helyzet mint eddig, a problémát megoldottnak tekintem, a kompatibilitásom megvan 2.1 és 4.0.3 között.[ Szerkesztve ]
-
SektorFlop
aktív tag
Mind2 variációt nézem, de nem áll össze a kép.
egyenlőre így állok:
public class MySimpleCursorAdapter extends SimpleCursorAdapter {
public MySimpleCursorAdapter(Context context, int layout, Cursor c, String[] from,
int[] to) {
super(context, layout, c, from, to);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
allapot = ????????????????;
if (allapot == 1) {
view.setBackgroundColor(Color.RED);
} else {
view.setBackgroundColor(Color.GREEN);
}
return view;
}
}Az adapter bemenő paraméterek egyike se tartalmazza a vizsgálni kívánt elemet, ha csak a Cursor-ban nincs benne, mert az egy szimpla select-et add vissza (ha nem mondok hülyeséget). Abból nem tudom valahogy kinyerni az állapot státuszát?
Vagy az adapter egyik bemenő paraméterébe pl. a "from"-ba rakjam be az állapotot is? Most jönnek elő a hiányosságaim Itt most teljesen elakadtam...
[ Szerkesztve ]
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
Karma
félisten
Ismert hiba. Szerintem nem tudsz vele mit csinálni, inkább próbáld meg átverni az ügyfelen, hogy hátrafelé a platform hibája miatt nem fog működni, csak előre.
“All nothings are not equal.”
-
Karma
félisten
Ha API level 9 és afölötti Androiddal dolgozol (mással nem is nagyon van ma már értelme), akkor használhatod a Normalizer osztályt a Unicode szabványnak megfelelő ékezetlebontáshoz és -nyíráshoz. Itt a mikéntje.
“All nothings are not equal.”
-
Karma
félisten
Az alacsony targetSdkVersionnek egyébként van egy olyan mellékhatása, ami azért fenéken tud harapni a jövőben: 11-es API szint felett tilos UI szálon hálózati kommunikációt végezni (NetworkOnMainThreadException dobódik), de ha a targetSdkVersion kisebb ennél, az új androidos eszközök se akadnak fenn miatta - hogy ezáltal a régi, nem frissített alkalmazások ne dőljenek össze.
“All nothings are not equal.”
-
vz12
tag
Siker!
Először a manifest fájlt babráltam (minSdkVersion="9", targetSdkVersion="9", külön és együtt is), ekkor az Eclipse a .java fájlomat (az összes import-ot) kidekorálta piros X-ekkel, azaz még a Normalizer nélkül is hiba.
Visszatettem "8"-ra mindent, majd a Project/Properties-ben a "Build Target"-et az addigi Android 2.2-ről átállítottam 2.3-ra, ekkor nem volt hiba, beírtam a Normalizer-es kódot, és az Eclipse fel is ajánlotta a Normalizer importját, azaz minden rendben. Ráadásul még működött is, a korábbi 2.2-es AVD-vel is ment a Normalizer-es kód (!!!) Persze - gondolom - át lett verve szegény szimulátor a "Build Target" átállításával, hiába 2.2-es a szimulátor, ha 2.3-as "motor" lett alátöltve.Viszont így nem tudom hogy "igazi" 2.2-es fizikai eszközön mi történik, erre kíváncsi lennék.
Beletettem try-ba a Normalizer-es kódot, catch-be a Map-es kódot, a debugolás szerint az így beállított környezetben a 2.2-es szimulátorban hibátlanul lefutott a Normalizer-es kód, és nem is ment át a catch-be. (Egyébként amikor beletettem a try-ba egy nullával osztást, akkor átment, és szépen lefutott a catch-es rész, az eredmény ugyanaz lett!)
A két módszer sebességre és végeredményre is megegyezik a szimulátorban is, meg a 2.3-as telefonomon is. Sajnos nekem nincs Android 2.2-vel fizikai eszközöm, így nem vagyok benne biztos, hogy ott a catch-ben landolna a folyamat, elképzelhetőnek tartom, hogy ott kiakad a program.
Mivel sebességben egyforma a két módszer, a nem ékezetes betűk meg nem igazán érdekelnek, így talán biztonságosabb ha csak a Map-es módszert hagyom benne, a Normalizer-est meg megjegyzem magamnak a későbbiekre nézve, de itt kiszedem. Persze hagyhatnám is a 2.2-t a csudába, de egyelőre még inkább megtartanám.
Erről mi a véleményetek?[ Szerkesztve ]
-
thon73
tag
Bocs, csak most csatlakoztam bele a történetbe.
Én ugyanezzel a problémával szembesültem, azzal kiegészítve, hogy nem csak az ékezetek, hanem néhány írásjel átalakítására is szükségem volt. Végül úgy oldottam meg, hogy készítettem egy kb 300 elemű tömböt. Az indexet az unicode kód adta, az elem értéke pedig visszaadta, hogy milyen ékezettelen karakternek kell ezt tekinteni. A tömb mérete felett csak nagyon elvarázsolt karakterek vannak (vagyis az európai nyelvekben nem használatosak), így ott mindig az "ugord át" jelet adta vissza.
((Nagyon zárójelben jegyzem meg, hogy ezt továbbgondolva ezzel az egy táblázattal sikerült a lényeges nyelveken rendezni a kifejezéseket, ill. keresni is ékezetlenített módon.))
Persze ez is csak egy módszer a sok közül, de gyors, tömör és hasznos volt. Nem a végleges változat, de ITT megtaláltam, amit írtam róla korábban.A targettel kapcsolatban annyit fűznék hozzá (bár fentebb elhangzott), hogy ebbe a hibába én is beleestem, mert 2.36 alá írtam a programokat, és a régi sdk-val fordítottam.
Valóban az a követendő, hogy a leges-legújabb sdk legyen fent, és ez szerepeljen a project.properties-ben is. (És amivel szintén voltak hm. gondjaim: a support library-t is illik ezzel együtt frissíteni a projektben). A minimalis és a target (a manifestben) ettől függetlenül bármire beállítható. (Én is többnyire API8/API10 kombóra fordítok, de (((elvileg))) a legutoljára letöltött sdk-val.) -
WonderCSabo
félisten
a korábbi 2.2-es AVD-vel is ment a Normalizer-es kód (!!!)
Ez eléggé lehetetlennek hangzik. Ha nem érhető el az adott osztály az API levelen, akkor bizony ClassNotFoundException dobódik. Most vagy mégis már API 9 alatt elérhető volt ez az osztály, vagy nem 2.2-es emulátoron futtatad.
-
WonderCSabo
félisten
Mielőtt döntenél, nem érdemes megnézni mennyien is használnak Android 2.2-t.
-
sztanozs
veterán
Magyar nyelvű júzereknek is lehetnek ám külföldi ismerősei...
Külföldi karaktereket meg nem csak beírni, de beimportálni is lehetséges (kell legyen).[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
Új hozzászólás Aktív témák
- iPhone 14pro max 256gb 2025.02.04ig Gari!!
- AMD Ryzen 5 5600X BOX - Új, bontatlan, 3 év garancia - Eladó! 48.000.-
- Dell Latitude 9430 2-in-1, 14" QHD+ IPS 360 érintő -500nit-, i7-1265U, 32GB DDR5, 512GB NVMe, gar
- ThinkPad T15 Gen2 15.6" FHD IPS i7-1185G7 16GB 512GB NVMe magyar vbill ujjlolv., gar
- Honor 50 - 5G 8 + 256 GB eladó!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs