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

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

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

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

Android Studio

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

Q&A

解決済

1回答

2570閲覧

ボタンを押してカメラを起動し、QRコードを読み込み結果を表示する。

Android-student

総合スコア5

Java

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

Android Studio

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

0グッド

0クリップ

投稿2021/12/15 15:03

編集2021/12/19 09:19

前提・実現したいこと

Androidstudioで次のものを作成したいです。
①「QRカメラ起動」ボタンを押してカメラを起動する。
②カメラ上でQRコードを読み込み結果を表示する。

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

①アプリを起動時、「QRカメラ起動」ボタンが表示されずいきなりカメラが起動された状態になる。
②QRコードを読み取り時に処理が落ちる。

該当のソースコード

build.gradle(:app)

plugins { id 'com.android.application' } android { compileSdk 31 defaultConfig { applicationId "com.example.qrread" minSdk 24 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.1' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation 'com.journeyapps:zxing-android-embedded:4.1.0' }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/Qr_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="QRカメラ起動" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toEndOf="parent" app:layout_constraintEnd_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package com.example.qrread; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.text.SpannableStringBuilder; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = findViewById(R.id.Qr_button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new IntentIntegrator(MainActivity.this).initiateScan(); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ IntentResult result = IntentIntegrator.parseActivityResult(requestCode,resultCode,data); if(result.getContents() != null) { if (result.getContents() != null) { Toast.makeText(MainActivity.this, result.getContents(), Toast.LENGTH_LONG).show(); } } else { super.onActivityResult(requestCode, requestCode, data); } } }

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

・Android Studio:Android Studio Arctic Fox 2020.3.1 Patch 4
・パソコンの機種:LIFEBOOK AH53/U FMVA53UW
・OS のバージョン:Windows 10 Home バージョン 21H1
・CPU :"Core i7 4722HQ(Haswell)"
・GPU :"インテル® HD グラフィックス 4600"

デバック情報 入りきらなかったので一部抜粋

12/17 02:11:50: Launching 'app' on samsung SC-04J.
App restart successful without requiring a re-install.
$ adb shell am start -n "com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.example.qrread | com.example.qrread.test
Waiting for application to come online: com.example.qrread | com.example.qrread.test
Connected to process 8243 on device 'samsung-sc_04j-521031c3508354b5'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/ActivityThread: Application com.example.qrread is waiting for the debugger on port 8100...
I/System.out: Sending WAIT chunk
Connecting to com.example.qrread
Connected to the target VM, address: 'localhost:52373', transport: 'socket'
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/ActivityThread: Application com.example.qrread is waiting for the debugger on port 8100...

~中略~

D/CameraInstance: Camera is closed, not requesting preview
V/MediaPlayerNative: invoke 68
D/CameraPreview: pause()
D/CameraPreview: pause()
D/ViewRootImpl@884794c[CaptureActivity]: MSG_WINDOW_FOCUS_CHANGED 0
D/ViewRootImpl@884794c[CaptureActivity]: MSG_WINDOW_FOCUS_CHANGED 0
V/MediaPlayerNative: message received msg=6, ext1=0, ext2=0
unrecognized message: (6, 0, 0)
callback application
back from callback
V/MediaPlayer-JNI: getCurrentPosition: 0 (msec)
V/MediaPlayerNative: message received msg=2, ext1=0, ext2=0
V/MediaPlayerNative: playback complete
callback application
V/MediaPlayerNative: back from callback
V/MediaPlayer-JNI: stop
V/MediaPlayerNative: stop
V/MediaPlayerNative: message received msg=8, ext1=0, ext2=0
unrecognized message: (8, 0, 0)
callback application
back from callback
V/MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer-JNI: release
V/MediaPlayerNative: setListener
disconnect
V/MediaPlayerNative: destructor
V/MediaPlayerNative: disconnect
W/MediaPlayer: mediaplayer went away with unhandled events
D/SurfaceView: BG show() Surface(name=Background for - SurfaceView - com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity@3c17605@0) android.view.SurfaceView{3c17605 V.E...... ........ 0,0-720,1280}
surfaceDestroyed 1 #2 android.view.SurfaceView{3c17605 V.E...... ........ 0,0-720,1280}
D/SurfaceView: BG destroy() Surface(name=Background for - SurfaceView - com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity@3c17605@0) android.view.SurfaceView{3c17605 V.E...... ........ 0,0-720,1280}
D/OpenGLRenderer: eglDestroySurface = 0xd36f59e0
D/ViewRootImpl@884794c[CaptureActivity]: Relayout returned: old=[0,0][720,1280] new=[0,0][720,1280] result=0x5 surface={valid=false 0} changed=true
D/InputTransport: Input channel destroyed: fd=73
D/ViewRootImpl@884794c[CaptureActivity]: dispatchDetachedFromWindow
D/InputEventReceiver: channel 'fac809c com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity (client)' ~ Disposing input event receiver.
channel 'fac809c com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity (client)' ~NativeInputEventReceiver.
D/InputTransport: Input channel destroyed: fd=58
V/MediaPlayer-JNI: native_finalize
release
ターゲット VM から切断されました。アドレス: 'localhost:52373', transport: 'socket'

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

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

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

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

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

1T2R3M4

2021/12/15 23:18

デバッグした内容を質問に追記していただけませんか。
Android-student

2021/12/16 17:39

ありがとうございます。 デバック時のメッセージが入りきらなかったため、一部抜粋して追加いたしました。
bebebe_

2021/12/17 00:04

まずはカメラが起動する要素を排除してボタンがある画面が表示されるのを確認するのがいいと思います。
Android-student

2021/12/17 13:30

ありがとうございます。 画面表示から確認します。
jimbe

2021/12/18 05:17

コード・画面に表示されたもの等はそれぞれ毎にマークダウン記法を用いてください。
Android-student

2021/12/18 16:27

ありがとうございます。 コードを修正しました。
Android-student

2021/12/19 09:20

何度もありがとうございます。 ソースコード部分をドラッグで選択し、入力ボックス上部(<code>)のボタンを押しました。
jimbe

2021/12/19 10:08

編集ありがとうございます。 レイアウトをコピペして気が付いたのですが、位置の指定が間違っているようです。 > app:layout_constraintStart_toEndOf="parent" > app:layout_constraintEnd_toStartOf="parent" これではボタンが中央に表示されません。 それぞれ app:layout_constraintStart_toStartOf app:layout_constraintEnd_toEndOf なのではないでしょうか。
jimbe

2021/12/19 10:20 編集

また、ご提示されたデバッグ情報で妙なのですが >$ adb shell am start -n "com.example.qrread/com.journeyapps.barcodescanner.CaptureActivity" と「com.example.qrread.MainActivity」ではなく「com.journeyapps.barcodescanner.CaptureActivity」を実行しているようです。 AndroidManifest.xml で com.journeyapps.barcodescanner.CaptureActivity が実行されるようになっていないでしょうか。
Android-student

2021/12/20 13:07

ご指摘ありがとうございました。 修正後に目的を達成することが出来ました。 ありがとうございました。 参考にしたページの設定のままでした。
guest

回答1

0

自己解決

上記ご指摘の通り
AndroidManifest.xml の内容を

android:name="com.example.qrread.MainActivity"

に修正、および
activity_main.xml の内容を

app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" ```に修正することで解決いたしました。 ありがとうございました。

投稿2021/12/20 13:11

Android-student

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問