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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

6345閲覧

端末にlogcatを出力、保存する方法

yuko0524

総合スコア28

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2019/01/23 08:55

いつもお世話になっております。

Android端末の中にlogcatを出力、保存したいと考えています。
ネットで検索し、それをkotlin変換したソースが以下です。

Kotlin

1 2class WriteLogThread(private val context: Context) : Thread() { 3 4 @Override 5 fun run() { 6 var proc: java.lang.Process? = null 7 var reader: BufferedReader? = null 8 var writer: PrintWriter? = null 9 10 val pId = Integer.toString(Process.myPid()) 11 12 try { 13 proc = Runtime.getRuntime().exec(arrayOf("logcat", "-v", "time")) 14 reader = BufferedReader(InputStreamReader(proc!!.getInputStream()), 1024) 15 var line: String 16 while (true) { 17 line = reader!!.readLine() 18 if (line.length() === 0) { 19 try { 20 Thread.sleep(200) 21 } catch (e: InterruptedException) { 22 } 23 24 continue 25 } 26 27 if (line.indexOf(pId) !== -1) { 28 29 try { 30 val out: OutputStream 31 out = context.openFileOutput("log.text", Context.MODE_PRIVATE or Context.MODE_APPEND) 32 writer = PrintWriter(OutputStreamWriter(out, "UTF-8")) 33 writer!!.println(line) 34 } catch (e: Exception) { 35 e.printStackTrace() 36 } finally { 37 if (writer != null) { 38 writer!!.close() 39 } 40 } 41 42 } 43 } 44 } catch (e: IOException) { 45 e.printStackTrace() 46 } finally { 47 if (reader != null) { 48 try { 49 reader!!.close() 50 } catch (e: IOException) { 51 e.printStackTrace() 52 } 53 54 } 55 } 56 } 57}

上記の変換で大丈夫そうでしょうか。
また、このソースはWriteLogThread.ktというファイルで保存でOKなのでしょうか。

それと、これをメインからキックするコードもKotlin対応したいのですが

Thread wreiteLogThread = new WriteLogThread(getApplicationContext()); wreiteLogThread.start();

いまひとつ、どう変換すればよいのかわかりません。

かつ、どの辺りに追加記入してキックすればよいのかも教えていただけると助かります。

重ね重ねの質問で申し訳ありませんが、よろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

メインの上部にて

Kotlin

1 val writeLogThread = WriteLogThread(applicationContext) 2 writeLogThread.start() 3

と設定しました。
質問を閉じさせて頂きます。

投稿2019/01/24 23:12

yuko0524

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問