Forge for Android v1.6.15.003
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge for Android v1.6.3.001
by Agetian » 23 Sep 2017, 13:58
UPDATE (09/23/17): Forge for Android v1.6.3.001 has been released. It's released in sync with desktop Forge v1.6.3, the detailed changelog is available here: viewtopic.php?f=26&t=21157
Enjoy!
- Agetian
Enjoy!
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.001
by ninja » 25 Sep 2017, 01:00
Hang/crash at 'Finishing Startup' on newest version.
Re: Forge for Android v1.6.3.001
by Agetian » 25 Sep 2017, 14:00
Please provide the contents of your Forge.log after the hang/crash (you can find it under "data" in your Forge installation folder).ninja wrote:Hang/crash at 'Finishing Startup' on newest version.
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.001
by ninja » 25 Sep 2017, 19:39
Agetian wrote:Please provide the contents of your Forge.log after the hang/crash (you can find it under "data" in your Forge installation folder).
- Agetian
- Log | Open
- (ThreadUtil first call): Running on a machine with 2 cpu core(s)
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6094)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:824)
at android.view.View.requestLayout(View.java:16438)
at android.view.View.setLayoutParams(View.java:10585)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:282)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:74)
at android.app.Activity.onWindowAttributesChanged(Activity.java:2329)
at android.view.Window.setFlags(Window.java:759)
at android.view.Window.addFlags(Window.java:709)
at forge.app.Main$AndroidAdapter$3.run(Main.java:242)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:415)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1525)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6094)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:824)
at android.view.View.requestLayout(View.java:16438)
at android.view.View.setLayoutParams(View.java:10585)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:282)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:74)
at android.app.Activity.onWindowAttributesChanged(Activity.java:2329)
at android.view.Window.setFlags(Window.java:759)
at android.view.Window.clearFlags(Window.java:725)
at forge.app.Main$AndroidAdapter$3.run(Main.java:245)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:415)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1525)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6094)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:824)
at android.view.View.requestLayout(View.java:16438)
at android.view.View.setLayoutParams(View.java:10585)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:282)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:74)
at android.app.Activity.onWindowAttributesChanged(Activity.java:2329)
at android.view.Window.setFlags(Window.java:759)
at android.view.Window.addFlags(Window.java:709)
at forge.app.Main$AndroidAdapter$3.run(Main.java:242)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:415)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1525)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6094)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:824)
at android.view.View.requestLayout(View.java:16438)
at android.view.View.setLayoutParams(View.java:10585)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:282)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:74)
at android.app.Activity.onWindowAttributesChanged(Activity.java:2329)
at android.view.Window.setFlags(Window.java:759)
at android.view.Window.clearFlags(Window.java:725)
at forge.app.Main$AndroidAdapter$3.run(Main.java:245)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:415)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1525)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)
Language 'java.util.PropertyResourceBundle@421c3a98' loaded successfully.
Read cards: 17244 archived files in 29682 ms (25 parts) using thread pool
Upcoming set Ixalan (XLN) dated in the future. All unaccounted cards will be added to this set with unknown rarity.
Upcoming set Ixalan (XLN) dated in the future. All unaccounted cards will be added to this set with unknown rarity.
Re: Forge for Android v1.6.3.001
by Rakanoth » 25 Sep 2017, 20:17
Hello, I'm new in this forum and I have a question:how can I get better quality of cards images?
I have a motorola moto g5 plus, I need to download all cards images?
Tell me what I need to do I want to play this so much
I have a motorola moto g5 plus, I need to download all cards images?
Tell me what I need to do I want to play this so much

Re: Forge for Android v1.6.3.001
by lordknightstradmore » 26 Sep 2017, 08:25
@Rakanoth currently, Forge only allows you to download Low Quality Images from its server. If you want a High Quality image then you must download it yourself then paste it on the card folder with the addition to change the name of the image that is readable to Forge.
"A failure is simply another opportunity for
improvement. Just wait until you see what I
come up with next."
-Nimble Innovator
improvement. Just wait until you see what I
come up with next."
-Nimble Innovator
- lordknightstradmore
- Posts: 28
- Joined: 26 Aug 2017, 17:58
- Has thanked: 2 times
- Been thanked: 10 times
Re: Forge for Android v1.6.3.001
by Magicus » 26 Sep 2017, 19:51
First of all, thanks to everyone, who helped to make the mobile port of Forge a reality!
This is by far my most favorite app for travelling.
During the past few weeks I observed several small bugs, which look like they could be easily fixable, and which I can compile in a moment.
But even before that I have one request for a change. Though I am not sure, how hard it will be to implement it, when the main programmer of this Android port is currently MIA.
Currently all scrollable lists (i.e.game log) close automatically after a very short time, which doesn't allow to look for anything there (so the list usually has to be opened several times, and scrolled in small chunks).
So it would be great, if either the automatic closing of these lists could be turned off, or at least extend the closing time.
This is by far my most favorite app for travelling.
During the past few weeks I observed several small bugs, which look like they could be easily fixable, and which I can compile in a moment.
But even before that I have one request for a change. Though I am not sure, how hard it will be to implement it, when the main programmer of this Android port is currently MIA.
Currently all scrollable lists (i.e.game log) close automatically after a very short time, which doesn't allow to look for anything there (so the list usually has to be opened several times, and scrolled in small chunks).
So it would be great, if either the automatic closing of these lists could be turned off, or at least extend the closing time.
Re: Forge for Android v1.6.3.001
by Magicus » 26 Sep 2017, 22:10
So, here are the bugs, which I was able to reproduce also on 1.6.3.001 (others on my list seems to be already fixed).
Nissa's Judgment: you cannot cast this card at all, if the opponent has no creatures on the battlefield.
But there is a "up to one target creature" clause, so you should be able to cast it just for the support effect, and fizzling the second effect by not targeting anything.
Chandra, Fire of Kaladesh: she is transformed only in case you activate her damage ability 3 times in one turn. But as is confirmed also by Oracle, it should consider all kinds of damage, including combat. Currently if you use her ability once, untap her, and attack unblocked the card is not transformed afterwards.
Vampire Nocturnus: doesn't reveal the top card of the library (though the boost effect is correctly applied if the card on top is really black).
Nissa's Judgment: you cannot cast this card at all, if the opponent has no creatures on the battlefield.
But there is a "up to one target creature" clause, so you should be able to cast it just for the support effect, and fizzling the second effect by not targeting anything.
Chandra, Fire of Kaladesh: she is transformed only in case you activate her damage ability 3 times in one turn. But as is confirmed also by Oracle, it should consider all kinds of damage, including combat. Currently if you use her ability once, untap her, and attack unblocked the card is not transformed afterwards.
Vampire Nocturnus: doesn't reveal the top card of the library (though the boost effect is correctly applied if the card on top is really black).
Re: Forge for Android v1.6.3.001
by friarsol » 27 Sep 2017, 01:04
Your suggestion here is incorrect. The transformation ability is tied to her activated ability. So if you attack first, then cast a red spell, then activate the ability. It will transform. Because it only checks the ability while that ability is resolving.Magicus wrote:Chandra, Fire of Kaladesh: she is transformed only in case you activate her damage ability 3 times in one turn. But as is confirmed also by Oracle, it should consider all kinds of damage, including combat. Currently if you use her ability once, untap her, and attack unblocked the card is not transformed afterwards.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge for Android v1.6.3.001
by Agetian » 27 Sep 2017, 03:54
Hmm, I can't reproduce this. What exactly do you mean that it doesn't reveal the top card of the library? If I click on the library icon (both in desktop and mobile Forge), it correctly shows the top card face up, which is similar to how this effect operates for Courser of Kruphix and other similar cards...Magicus wrote:Vampire Nocturnus: doesn't reveal the top card of the library (though the boost effect is correctly applied if the card on top is really black).
- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.001
by Agetian » 27 Sep 2017, 03:57
Fixed upstream.Magicus wrote:Nissa's Judgment: you cannot cast this card at all, if the opponent has no creatures on the battlefield.
But there is a "up to one target creature" clause, so you should be able to cast it just for the support effect, and fizzling the second effect by not targeting anything.

- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.001
by CokedUpZombie » 27 Sep 2017, 05:55
Anyone else getting a game crash after triggering the Exalted ability? As soon as it becomes my opponents turn after I used exalted it crashes. Every time.
Description: correction it is the turn after any creature with exalted comes into play.
Description: correction it is the turn after any creature with exalted comes into play.
- RuntimeException | Open
- Code: Select all
Forge Version: 1.6.3.001
Operating System: Linux 4.4.16-11982677 armv8l
Java Version: 0 The Android Project
java.lang.RuntimeException: AbilityFactory : getAbility -- Noble Hierarch has no SVar: ExaltedPump
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:141)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:135)
at forge.ai.ComputerUtilCombat.applyPotentialAttackCloneTriggers(ComputerUtilCombat.java:2546)
at forge.ai.AiAttackController.doesHumanAttackAndWin(AiAttackController.java:380)
at forge.ai.AiAttackController.notNeededAsBlockers(AiAttackController.java:303)
at forge.ai.AiAttackController.declareAttackers(AiAttackController.java:972)
at forge.ai.AiController.getPredictedCombat(AiController.java:114)
at forge.ai.ComputerUtilCard.doesCreatureAttackAI(ComputerUtilCard.java:448)
at forge.ai.ComputerUtilCard.shouldPumpCard(ComputerUtilCard.java:1256)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:468)
at forge.ai.ability.PumpAiBase$3.apply(PumpAiBase.java:465)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:1143)
at forge.util.collect.FCollection.<init>(FCollection.java:90)
at forge.game.card.CardCollection.<init>(CardCollection.java:115)
at forge.game.card.CardLists.filter(CardLists.java:276)
at forge.ai.ability.PumpAiBase.getPumpCreatures(PumpAiBase.java:465)
at forge.ai.ability.PumpAi.pumpTgtAI(PumpAi.java:458)
at forge.ai.ability.PumpAi.checkApiLogic(PumpAi.java:373)
at forge.ai.SpellAbilityAi.canPlayWithoutRestrict(SpellAbilityAi.java:83)
at forge.ai.SpellAbilityAi.canPlayAI(SpellAbilityAi.java:53)
at forge.ai.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:36)
at forge.ai.AiController.canPlaySa(AiController.java:633)
at forge.ai.AiController.canPlayAndPayFor(AiController.java:617)
at forge.ai.AiController.chooseSpellAbilityToPlayFromList(AiController.java:1280)
at forge.ai.AiController.getSpellAbilityToPlay(AiController.java:1252)
at forge.ai.AiController.chooseSpellAbilityToPlay(AiController.java:1135)
at forge.ai.PlayerControllerAi.chooseSpellAbilityToPlay(PlayerControllerAi.java:411)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:952)
at forge.game.GameAction.startGame(GameAction.java:1574)
at forge.game.Match.startGame(Match.java:87)
at forge.match.HostedMatch$2.run(HostedMatch.java:225)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
- CokedUpZombie
- Posts: 90
- Joined: 08 Feb 2017, 18:57
- Has thanked: 14 times
- Been thanked: 22 times
Re: Forge for Android v1.6.3.001
by Agetian » 27 Sep 2017, 07:55
This will be fixed in the next intermediate build, which should be released soon 
- Agetian

- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.002
by Agetian » 27 Sep 2017, 08:07
Forge for Android v1.6.3.002 has been released. It's an incremental build featuring bug fixes and several new features that are in testing for the upcoming 1.6.4 release (consider them experimental for now):
- Allow Ordering Graveyard if Needed (option) -
A new option is available in Forge that makes the game offer you to order the cards as they go into graveyard if, for example, several cards are destroyed, sacrificed or milled at the same time. When enabled, this option only takes effect in case there is at least one card in at least one player's library that cares about the order of cards in graveyard (currently the following cards are marked as caring about graveyard order: Nether Shadow, Spinning Darkness, Corpse Dance, Shallow Grave, Phyrexian Furnace, Krovikan Horror, Volrath's Shapeshifter, Ashen Ghoul, Phyrexian Grimoire, Nature's Kiss, Soldevi Digger, Guiding Spirit, Barrow Ghoul, Circling Vultures, Zombie Scavengers, Necratog, Mistmoon Griffin, Bone Dancer, Bosium Strip, Alms, Death Spark). Note that this option does not affect cards that reorder the graveyard as a part of their effect (Fossil Find). If this option is disabled, then no ordering is performed for cards like Volrath's Shapeshifter and the cards go into graveyards in whatever order the game automatically determines them to do so (this is the original Forge behavior). This mechanism is not perfect yet (please report cases in which you were not allowed to order cards in the graveyard, as well as any strange behavior in corner cases, e.g. when some permanents are indestructible, etc.). This option is disabled by default.
- Partner Commander support -
It is now possible to set partner commanders through the user interface in mobile Forge, both in Constructed EDH and in Planar Conquest. When you have a commander that can be a legal partner to your current commander, you will have a new option "Set as Partner Commander" available to you in the dropdown menu that you get when you tap the card.
Enjoy!
- Agetian
- Allow Ordering Graveyard if Needed (option) -
A new option is available in Forge that makes the game offer you to order the cards as they go into graveyard if, for example, several cards are destroyed, sacrificed or milled at the same time. When enabled, this option only takes effect in case there is at least one card in at least one player's library that cares about the order of cards in graveyard (currently the following cards are marked as caring about graveyard order: Nether Shadow, Spinning Darkness, Corpse Dance, Shallow Grave, Phyrexian Furnace, Krovikan Horror, Volrath's Shapeshifter, Ashen Ghoul, Phyrexian Grimoire, Nature's Kiss, Soldevi Digger, Guiding Spirit, Barrow Ghoul, Circling Vultures, Zombie Scavengers, Necratog, Mistmoon Griffin, Bone Dancer, Bosium Strip, Alms, Death Spark). Note that this option does not affect cards that reorder the graveyard as a part of their effect (Fossil Find). If this option is disabled, then no ordering is performed for cards like Volrath's Shapeshifter and the cards go into graveyards in whatever order the game automatically determines them to do so (this is the original Forge behavior). This mechanism is not perfect yet (please report cases in which you were not allowed to order cards in the graveyard, as well as any strange behavior in corner cases, e.g. when some permanents are indestructible, etc.). This option is disabled by default.
- Partner Commander support -
It is now possible to set partner commanders through the user interface in mobile Forge, both in Constructed EDH and in Planar Conquest. When you have a commander that can be a legal partner to your current commander, you will have a new option "Set as Partner Commander" available to you in the dropdown menu that you get when you tap the card.
Enjoy!

- Agetian
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Forge for Android v1.6.3.002
by Kawashy » 27 Sep 2017, 13:11
The app does not start and gets a black screen.
Who is online
Users browsing this forum: No registered users and 33 guests