Vývoj her pro Android – Proč nefunguje Intent

3.3.2012 by: Aimia

Tenhle článek jsem převzal z dřívějšího blogu, takže není úplně aktuální

Začal jsem nedávno vyvíjet hry pro telefony se systémem Android. Jako vždy se zpočátku potýkám s podivnými problémy, které “by neměly nastat” ale záhadně nastávají. První problém se týká přepínání Activity tříd.
Pokud chcete přepnout v Androidu mezi dvěma Activity obrazovkami, použijete na to třídu Intent a zavoláte metodu startActivity:

1
startActivity(new Intent(this, NewActivity.class));



Stalo se mi že jsem dlouze řešil, proč při zavolání start Activity, dojde k vyvolání výjimky. Nakonec byla jediná chyby v manifestu(nějak mi dochází že často, pokud mi něco nejede, je problém právě v chybějící definici v manifestu).
Takže stačí do manifestu přidat řádek podobný tomuto:

1
2
<activity android:name=".NewActivity"
        android:screenOrientation="portrait"></activity>
Filed under: Android

Comments

5 komentářů to “Vývoj her pro Android – Proč nefunguje Intent”
  1. reptile napsal:

    Cauko. Ked robis pod android tak tiez v as3, alebo v jave? Som skusal preklopit moju hru na telefon a bezi, ale bolo potrebne nainstalovat adobe AIR.

    • Aimia napsal:

      BubbleDoms jsem portoval na Javu, ale byl to porod. I když je AS3 dost podobné Javě, přecejenom jsem musel přepsat spoustu kódu, upravit resources atd. BobbleShooter jsem dělal už v AS3, použil jsem Starling. Nevýhoda je právě toho Adobe AIR, které se musí doinstalovat, ale myslím že časem to takový problém nebude(teď když telefony mají plno paměti, dvě a víc jader tak není problém doinstalovat, možná už bývá aji v některých tabletech předinstalovaný). Ale pokazí to asi stahování aplikací, nevím proč pro iOS jde vybuildovat ve Flashi přímo nativní aplikaci ale Android potřebuje AIR.
      Podle mě je jasná volba Flash – použiješ jeden kód pro Online, Desktop, iOS a Android hru. Portaci pro Android Java bych použil v případě že hra bude opravdu úspěšná, že se to vyplatí.

  2. ReptileSVK napsal:

    Hmm, no tak to ano. Ja som to portol cez andaired a slo to ako po masle. Dokonca som mouse eventy preklopil na touch eventy skrz dotykovy display a ide pekne. Inak to som len skusal na moj galaxyS3, takze rozlisenie nativne 720×1280, keby to niekto dal na iny telefon nebolo by to bohvie co:D, ale ide to plynulo co som rad. Zatial sa len ucim a starling som este nepouzil, iba tweener caurina. Pocul som, ze genome 2D je rychlejsi ako starling. V nejakom clanku pises, ze to uploadujes aj na kongregate. Vcera som to tam nahodil, ale prislo mi ze chcu aj US tax id aj ked nie si US obcan. Mas s tym nejake skusenosti?
    Dalsia nevyhoda pre slovakov je, ze google play nepodporuje slovensko pokial chces aplikaciu predavat, takze opat prekazka! Clovek rata, ze si privyrobi, ale same prekazky 😀

    • Aimia napsal:

      Hmm, Andaired neznám. A ty používáš klasický flash(bez Stage3D) a jede ti to rychle? Takže jsi použil AS3 kód, portace přímo do Javy by byla hodně úmornější. A problém je i v těch rozlišeních – podpora multirozlišení je často hrůza.
      Gnome jsem nezkoušel, ale jelikož je Starling podporovaný i Adobe, zůstal bych u něj(testoval jsem Starling na iOS i Android a běžel svižně).
      Kongregate nemusíš vkládat US id, ale budou tě dvakrát danit. Kong ti strhne 30% a u nás ještě 15%.
      Na slovensku ještě nejde prodávat? To jsem nevěděl. Na překážky si člověk holt musí zvyknout, to je furt něco 🙂

      • reptile napsal:

        Ja neviem ci mam stage3D to ako zistim? Ja som isiel podla tvojich pokynov t.j. stiahol som flash develop+sdk+najnovsi flash player a kod pisem v as3 vo flash develop. Niekedy sa mi zda ze to seka na pc a na mobile nie. Pri portaci na mobil som zadal ze render bude gpu. No ok nech si zoberu tych 30% zatial z nuly :-D. A jasne na google play zatial slovensko nepodporovane. Jedine cez tretiu stranu a ti beru 10% zo zarobku.

Leave a Reply