• その他
    大企業と中小企業(ベンチャー企業)あなたはどっちに向いている?
    2016年1月19日
  • おすすめ情報
    【厳選子育てアプリ4選】子育て記録もアプリを使えばこんなに手軽になる!
    2016年1月22日
  • 生活
    大学生のバイトは高時給なパチンコ屋がオススメ!最適なアルバイト選びで最高のキャンパスライフを
    2016年2月7日
  • その他
    宝くじで3000万円当たったのに全然嬉しくない件
    2016年5月10日
  • その他
    就活ってなにからやればいいの!?何をすればいいのかわからない!
    2016年2月5日
  • その他
    お酒は太るってほんと?太らないお酒もある?
    2016年2月18日
  • 生活
    引越しの初期費用は交渉次第で半額以下になる!節約して快適な新生活を始めよう!
    2016年1月27日
  • おすすめ情報
    中学生・高校生に人気のバンドはこれだ!12選【2016年版】
    2016年4月12日
  • アプリ開発
    ゲーム開発素人が1週間でFlappyBird風ゲームアプリを作ってみた【MoneyBird】
    2016年5月24日
  • おすすめ情報
    Pebble Time Round | スマートウォッチがこんなにかっこいいはずがない
    2016年3月9日

Androidでゲーム開発して、テストしていたら特定の機種だけ落ちる場所が!
 
Android6.0.1でおそらくMarshmallowでエラーが吐かれるようです。
 
修正前

canvas.rotate(player.getRotated(), player.getX() + (player.getWidth() / 2), player.getY() + (player.getHeight() / 2));
		player.draw(canvas);
		canvas.restore();
		frontground.draw(canvas);

canvas.restore();の部分でIllegalStateException: Underflow in restore - more restores than savesと怒られてしまいました。

canvas.restore();はcanvasの状態を復元させるメソッドですが、復元する状態がわからないのが問題みたいです。
解決するには、canvasを編集する前に状態をしっかり保存してあげなければいけません。

修正後

canvas.save();
		canvas.rotate(player.getRotated(), player.getX() + (player.getWidth() / 2), player.getY() + (player.getHeight() / 2));
		player.draw(canvas);
		canvas.restore();
		frontground.draw(canvas);

このコードではcanvas.rotate()をする前にcanvas.save();で状態を保存してあげることで解決しました!

関連キーワード
アプリ開発の関連記事
  • Unityでスワイプ・フリックを取得する(多少大雑把なスワイプでもOKなように)
  • 【Unity】Unity IAP : アプリ内課金実装方法【iOS】【Android】
  • 【Xcode】Unable to install "APP NAME"の対処法【エラー error】
  • Unityの無料版でもスプラッシュ画像を変更出来るようになってる件 (ロゴが消せる!?)
  • 超簡単!Firebase Analyticsの使い方・導入方法【iOS編】
  • ゲーム開発素人が1週間でFlappyBird風ゲームアプリを作ってみた【MoneyBird】
おすすめの記事