質問するログイン新規登録

Q&A

0回答

1307閲覧

AndroidStudio、エミュレータでアプリが閉じてしまう

nejineji

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2021/07/26 05:57

0

0

AndroidStudioでパズドラのパズル部分を作ってみようと思っています。

MainActivity.javaで、パズドラで言うところのドロップを掴んで移動させる部分のコードを書いてみたのですが、ビルドしてエミュレータで確認しようとしたところアプリが一瞬で閉じてしまいます。
xmlのみ記入し、Javaコードを一旦削除して実行すると背景などが表示されるためJavaコードが問題ではないかと思うのですが調べても原因がわかりません。

発生している問題・エラーメッセージ

ビルドのところには、Build:finishedとチェックマークもついています。 エミュレータではアプリが閉じた後、My application keeps stopping と表示されます。

該当のソースコード

Java

1package http://--; 2import java.util.Random; 3 4import androidx.annotation.RequiresApi; 5import http://androidx.appcompat.app.AppCompatActivity; 6import androidx.core.content.ContextCompat; 7 8import http://android.os.Build; 9import android.os.Bundle; 10import android.view.DragEvent; 11import android.view.MotionEvent; 12import android.view.View; 13import android.widget.GridLayout; 14/* View.OnLongClickListenerの実装 */ 15public class MainActivity extends AppCompatActivity implements View.OnDragListener, MainActivity2 { 16 17 /* 画面起動前のViewの初期化処理などを行うメソッド */ 18 19@Override 20 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 25 GridLayout parent = findViewById(http://R.id.grid_layout); 26 for (int i = 0; i < parent.getChildCount(); i++) { 27 View v = parent.getChildAt(i); 28 v.setOnTouchListener((View.OnTouchListener) this); 29 v.setOnDragListener((View.OnDragListener) this); 30 } 31 } 32 33 private View mDragView; 34 35 36@RequiresApi (api = Build.VERSION_CODES.N) 37 38@Override 39 public boolean onTouch(View v, MotionEvent motionEvent) { 40 // 押下時に動作 41 if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 42 mDragView = v; 43 44 // Viewをドラッグ状態にする。 45 v.startDragAndDrop(null, new View.DragShadowBuilder(v), v, 0); 46 v.setAlpha(0); 47 } 48 return true; 49 } 50 51 52@RequiresApi 53(api = Build.VERSION_CODES.P) 54 55@Override 56 public boolean onDrag(View v, DragEvent event) { 57 switch (event.getAction()) { 58 59 case DragEvent.ACTION_DRAG_ENDED: 60 getMainExecutor() .execute(() -> mDragView.setAlpha(1)); 61 break; 62 63                         // 位置を入れ替える 64 case DragEvent.ACTION_DRAG_LOCATION: 65 getMainExecutor().execute(() -> swap(v, mDragView)); 66 break; 67 } 68 return true; 69 } 70 71 private void swap(View v1, View v2) { 72 73 if (v1 == v2) return; 74 75 GridLayout parent = findViewById(http://R.id.grid_layout); 76 77 GridLayout.LayoutParams p1, p2; 78 p1 = (GridLayout.LayoutParams) v1.getLayoutParams(); 79 p2 = (GridLayout.LayoutParams) v2.getLayoutParams(); 80 parent.removeView(v1); 81 parent.removeView(v2); 82 parent.addView(v1, p2); 83 parent.addView(v2, p1); 84 } 85 86}

試したこと

JavaSilverの勉強はしたのですが、アンドロイドスタジオの使い方がまだ完全には理解できていないので、ここまでほとんど調べながら書きました。
キャッシュの無効化もしましたが変化はありませんでした。

補足情報(FW/ツールのバージョンなど)

Android studio 4.2.2 API30
java

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問