質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Q&A

解決済

2回答

4409閲覧

Androidアプリのデバッグをしていたら、「問題が発生したため、○○○○を終了します」と表示される。

hidemaru

総合スコア30

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

0グッド

0クリップ

投稿2016/06/02 09:05

編集2016/06/03 11:07

###Androidアプリを実機でデバッグしていたら、「問題が発生したため、○○○○を終了します」と表示される。
JavaでAndroidアプリを開発しているのですが、カスタムビューでタッチイベントを受け取って、Intentを投げるプログラムをかいてデバッグしたところ、「問題が発生したため、○○○○を終了します」と表示されて、終了してしまうのですが、どうしたらよいでしょうか。

###発生している問題・エラーメッセージ
アプリを起動し、画面をタッチした時に、

「問題が発生したため、○○○○を終了します」

と表示され、強制終了する。
スクリーンショット

###TestView.java

package

1 2import android.content.Intent; 3import android.content.res.Resources; 4import android.util.AttributeSet; 5import android.view.MotionEvent; 6import android.view.View; 7import android.graphics.Rect; 8import android.graphics.Bitmap; 9import android.graphics.Point; 10import android.view.Display; 11import android.app.Activity; 12import android.graphics.Canvas; 13import android.graphics.BitmapFactory; 14 15/** 16 * Created by hidemaru on 2016/03/19. 17 */ 18public class TestView extends View { 19 20 //画面サイズ定数 21 private final static int 22 W = 480,//画面幅 23 H = 800;//画面高さ 24 25 //システム 26 private Graphics g; //グラフィックス 27 private Rect gSrc; //グラフィックス描画元 28 private Rect gDst; //グラフィックス描画先 29 private Bitmap bmp;//ビットマップ 30 31 public TestView(Activity activity) { 32 super(activity); 33 Display display = activity.getWindowManager().getDefaultDisplay(); 34 Point p = new Point(); 35 display.getSize(p); 36 int dh = W * p.y / p.x; 37 38 //グラフィックスの生成(2) 39 g = new Graphics(W, dh); 40 g.setOrigin(0, (dh - H) / 2); 41 gSrc = new Rect(0, 0, W, dh); 42 gDst = new Rect(0, 0, p.x, p.y); 43 44 Resources resources = getResources(); 45 bmp = BitmapFactory.decodeResource(resources,R.drawable.vult); 46 47 48 } 49 50 @Override 51 protected void onDraw(Canvas canvas){ 52 //背景の描画 53 g.drawBitmap(bmp, 0, 0); 54 canvas.drawBitmap(bmp,null,gDst,null); 55 56 } 57 58 59 @Override 60 public boolean onTouchEvent(MotionEvent event) { 61 int touchAction = event.getAction(); 62 if (touchAction == MotionEvent.ACTION_DOWN) { 63 getContext().startActivity(new Intent(getContext(), SelectView.class)); 64 65 } 66 return true; 67 } 68 69 70}

###IndexActivity.java

package

1 2import android.app.Activity; 3import android.os.Bundle; 4import android.view.WindowManager; 5import android.view.Window; 6 7 8/** 9 * Created by hidemaru on 2016/02/29. 10 */ 11public class IndexActivity extends Activity { 12 13 private TestView testView; 14 @Override 15 protected void onCreate(Bundle bundle){ 16 super.onCreate(bundle); 17 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 18 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 19 requestWindowFeature(Window.FEATURE_NO_TITLE); 20 testView = new TestView(this); 21 setContentView(testView); 22 } 23}

###試したこと
TestView.javaに、

public boolean performClick() { super.performClick(); return true; } ```を追加してみましたが、変わりませんでした。 ※yonaさんの意見により、performClickメソッドは、削除しました。 ###logcat

Caused by: java.lang.NullPointerException
at jp.co.hokkaido.nakafurano.hideo.kodama.vulkan.SelectActivity.onCreate(SelectActivity.java:55)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2193)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2310)
at android.app.ActivityThread.access$600(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1274)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5323)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:974)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:741)
at dalvik.system.NativeStart.main(Native Method)

###NullPointerExceptionについて(SelectActivity.java) yonaさんのご指摘により、SelectActivityの56行目でNullPointerExceptionが発生しているようなので、コードを掲載しておきます。

package jp.co.hokkaido.nakafurano.hideo.kodama.vulkan;

import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Point;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.Display;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;

/**

  • Created by hidemaru on 2016/03/25.

*/
public class SelectActivity extends Activity {
@Override
protected void onCreate(Bundle bundle){
super.onCreate(bundle);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);

Display display = this.getWindowManager().getDefaultDisplay(); Point p = new Point(); display.getSize(p); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setBackgroundColor(Color.argb(255, 100, 149, 237)); ImageButton imgMap = new ImageButton(this); ImageButton imgLive = new ImageButton(this); ImageButton imgAVS = new ImageButton(this); Resources r = getResources(); Bitmap bmpM = BitmapFactory.decodeResource(r, R.drawable.vutton0); imgMap.setImageBitmap(bmpM); imgMap.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(SelectActivity.this,VolMap.class); startActivity(intent); } }); LayoutParams lp = imgMap.getLayoutParams(); MarginLayoutParams mlpM = (MarginLayoutParams)lp; mlpM.setMargins((p.x-60)/2,(p.y-272*3)/4,(p.x-60)/2,0); imgMap.setLayoutParams(mlpM); linearLayout.addView(imgMap); //TODO continue this proccess Resources r2 = getResources(); Bitmap bmpL = BitmapFactory.decodeResource(r2, R.drawable.vutton1); imgLive.setImageBitmap(bmpL); imgLive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(SelectActivity.this,LiveCameraActivity.class); startActivity(intent); } }); LayoutParams lp2 = imgLive.getLayoutParams(); MarginLayoutParams mlpL = (MarginLayoutParams)lp2; mlpL.setMargins((p.x-60)/2,(p.y-272*3)/4,(p.x-60)/2,0); imgLive.setLayoutParams(mlpL); linearLayout.addView(imgLive); Resources r3 = getResources(); Bitmap bmpA = BitmapFactory.decodeResource(r3,R.drawable.vutton2); imgAVS.setImageBitmap(bmpA); imgAVS.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); LayoutParams lp3 = imgAVS.getLayoutParams(); MarginLayoutParams mlpA = (MarginLayoutParams)lp3; mlpA.setMargins((p.x-60)/2,(p.y-272*3)/4,(p.x-60)/2,0); imgAVS.setLayoutParams(mlpA); linearLayout.addView(imgAVS); }

}

解決につながることを願います。 ###補足情報(環境) OS OSX Yosemite 10.10.5 開発環境 Android studio 1.3.1 JAVA JRE 1.7.0 です。是非お願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dsuzuki

2016/06/02 09:30

問題切り分けのため、logcatを確認して下さい。 スマホをUSB接続したまま起動し、アプリが強制終了されたとき、Android Studioのlogcatにスタックトレースが出力されている可能性があります。
hidemaru

2016/06/02 09:45 編集

こちらがlogcatです。 Caused by: java.lang.NullPointerException at jp.co.hokkaido.nakafurano.hideo.kodama.vulkan.SelectActivity.onCreate(SelectActivity.java:55) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2193)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2310)             at android.app.ActivityThread.access$600(ActivityThread.java:169)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1274)             at android.os.Handler.dispatchMessage(Handler.java:99)             at android.os.Looper.loop(Looper.java:137)             at android.app.ActivityThread.main(ActivityThread.java:5323)             at java.lang.reflect.Method.invokeNative(Native Method)             at java.lang.reflect.Method.invoke(Method.java:511)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:974)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:741)             at dalvik.system.NativeStart.main(Native Method) 06-02 18:38:19.727 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:19.727 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:22.057 3772-20655/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException com.google.android.gms.drive.api.a.r: Unable to resolve account name. at com.google.android.gms.drive.api.a.q.a(:com.google.android.gms:71) at com.google.android.gms.common.service.f.run(:com.google.android.gms:176) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at com.google.android.gms.common.util.a.c.run(:com.google.android.gms:17) at java.lang.Thread.run(Thread.java:856)
guest

回答2

0

ベストアンサー

NextActivityがAndroidManifest.xmlにない、とかかなあ。
違っていたらごめんなさい。

それから、アプリ起動時にログを1行吐いておくとよいと思います。プロセスIDがわかるので。

■追記
SelectActivityのNullPointerExceptionは、

LayoutParams lp = imgMap.getLayoutParams();

の結果がnullであるからだと思います。new してしまって良いと思います。

投稿2016/06/02 14:57

編集2016/06/05 04:16
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidemaru

2016/06/03 07:55 編集

アドバイスありがとうございます。 一応、NextActivityはAndroidManifest.xmlに記述してあるので、たぶん別の場所だと思います。
退会済みユーザー

退会済みユーザー

2016/06/03 08:18 編集

画面は出る、タッチすると落ちる、というところから、onTouchEvent なのかと思いましたが違っていましたか。ならば、SelectActivity の onCreate が怪しいのですが、このクラスはソース上全く登場していませんが、このクラスはどうなっているのでしょうか? NextActivity から起動されたりしているのでしょうか? それから、Logcat ですが、 06-02 18:36:51.697 3772-20292/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException の 3772-20292/? の 3772 がプロセスIDです。ですから、 06-02 18:36:55.247 740-740/? E/Parcel﹕ Reading a NULL string not supported here. とは別のプロセス(複数のアプリのログが混在している)ということになります。 なんとなく、最初のログはパッケージ名から推測するにGoogle Driveが使用するGoogleアカウントがわからなかった、というログなのでしょう。 デバッグ対象のプログラムと同じプロセスIDのログのみを抽出してみてみることをお勧めします。
hidemaru

2016/06/03 09:07 編集

norihiroさん ご指摘ありがとうございます。 修正しておきます。
guest

0

TestViewのコンストラクタが通常のViewと異なりますね。通常はContextを引数に取ります。

詳細はログを見ないとわからないので強制終了時のログキャットを追記してください。

投稿2016/06/02 09:24

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidemaru

2016/06/02 09:42 編集

強制終了時のlogcatです。 06-02 18:38:33.487 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:33.487 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:42.287 3772-20814/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException この辺りだと思います
hidemaru

2016/06/02 09:43

この辺りもそうかな? Caused by: java.lang.NullPointerException at jp.co.hokkaido.nakafurano.hideo.kodama.vulkan.SelectActivity.onCreate(SelectActivity.java:55) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2193)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2310)             at android.app.ActivityThread.access$600(ActivityThread.java:169)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1274)             at android.os.Handler.dispatchMessage(Handler.java:99)             at android.os.Looper.loop(Looper.java:137)             at android.app.ActivityThread.main(ActivityThread.java:5323)             at java.lang.reflect.Method.invokeNative(Native Method)             at java.lang.reflect.Method.invoke(Method.java:511)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:974)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:741)             at dalvik.system.NativeStart.main(Native Method) 06-02 18:38:19.727 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:19.727 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:38:22.057 3772-20655/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException com.google.android.gms.drive.api.a.r: Unable to resolve account name. at com.google.android.gms.drive.api.a.q.a(:com.google.android.gms:71) at com.google.android.gms.common.service.f.run(:com.google.android.gms:176) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at com.google.android.gms.common.util.a.c.run(:com.google.android.gms:17) at java.lang.Thread.run(Thread.java:856)
yona

2016/06/02 09:43

ログキャットが不足しています。 一度クリアして、強制終了したあとまでのログを省略せずに追記してください。 また、ログは他の回答者も必要なので質問を修正して追記してください。
yona

2016/06/02 09:46

SelectActivityの55行目でヌルポが発生しています。そこの行で初期化していないインスタンスにアクセスしています。 あと、ログは質問に追記してください。
hidemaru

2016/06/02 09:52

06-02 18:36:51.697 3772-20292/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException com.google.android.gms.drive.api.a.r: Unable to resolve account name. at com.google.android.gms.drive.api.a.q.a(:com.google.android.gms:71) at com.google.android.gms.common.service.f.run(:com.google.android.gms:176) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at com.google.android.gms.common.util.a.c.run(:com.google.android.gms:17) at java.lang.Thread.run(Thread.java:856) 06-02 18:36:55.247 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:36:55.247 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:36:57.817 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:36:57.817 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:37:00.377 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:37:00.377 740-740/? E/Parcel﹕ Reading a NULL string not supported here. 06-02 18:37:01.717 3772-20298/? E/ClientConnectionOperation﹕ Handling ConnectionFailedException com.google.android.gms.drive.api.a.r: Unable to resolve account name. at com.google.android.gms.drive.api.a.q.a(:com.google.android.gms:71) at com.google.android.gms.common.service.f.run(:com.google.android.gms:176) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at com.google.android.gms.common.util.a.c.run(:com.google.android.gms:17) at java.lang.Thread.run(Thread.java:856) 06-02 18:37:02.937 740-740/? E/Parcel﹕ Reading a NULL string not supported here. これでどうでしょうか?
yona

2016/06/03 08:48 編集

performClickメソッドを削除してください。 また、SelectActivityの55行目でヌルポが発生しているというコメントに対するリアクションを取ってください。 あと、ログもコードと同じ記法に修正してください。
hidemaru

2016/06/03 10:57 編集

yonaさん、 SelectActivityのNullPointerExceptionについてですが、MarginLayoutParamsクラスのsetMarginsメソッドを呼び出すところで発生していました。ですが、原因がわからず、困っております。 performClickメソッドについては削除しました。(ヌルポは依然発生しています。)
yona

2016/06/03 14:49

LayoutParamsはsetLayoutParamsをするか、画面に配置されない限りセットされないです。 MarginLayoutParamsをnewしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問