アンドロイド用のコンソールとしてlogcatを使用しているので。出力text/msgが少し大きく、完全な出力が表示されない場合があります。ログキャットは、その開始部分のみを表示します。完全なメッセージを表示できるように拡張する方法はありますか?
5 に答える
これが私が問題を解決した方法です。それが役に立てば幸い。
コード内でそれを使用するための重要なメソッドはsplitAndLogです。
public class Utils {
/**
* Divides a string into chunks of a given character size.
*
* @param text String text to be sliced
* @param sliceSize int Number of characters
* @return ArrayList<String> Chunks of strings
*/
public static ArrayList<String> splitString(String text, int sliceSize) {
ArrayList<String> textList = new ArrayList<String>();
String aux;
int left = -1, right = 0;
int charsLeft = text.length();
while (charsLeft != 0) {
left = right;
if (charsLeft >= sliceSize) {
right += sliceSize;
charsLeft -= sliceSize;
}
else {
right = text.length();
aux = text.substring(left, right);
charsLeft = 0;
}
aux = text.substring(left, right);
textList.add(aux);
}
return textList;
}
/**
* Divides a string into chunks.
*
* @param text String text to be sliced
* @return ArrayList<String>
*/
public static ArrayList<String> splitString(String text) {
return splitString(text, 80);
}
/**
* Divides the string into chunks for displaying them
* into the Eclipse's LogCat.
*
* @param text The text to be split and shown in LogCat
* @param tag The tag in which it will be shown.
*/
public static void splitAndLog(String tag, String text) {
ArrayList<String> messageList = Utils.splitString(text);
for (String message : messageList) {
Log.d(tag, message);
}
}
}
GUIを使用してlogcat出力を表示することはないため、DDMS /EclipseUIのどこにスクロールバーがあるかがわかりません。
とにかく、コマンドラインからlogcatを使用できます—たくさんのオプションがあります。
アクティブなデバイスのログを継続的に監視するには:adb logcat
ログ全体adb logcat -d
をダンプするには:ログ全体をファイルにダンプするには:adb logcat -d > log.txt
特定のログタグをフィルタリングして表示するには:adb logcat -s MyLogTag
...そしてもっとたくさん!
長いメッセージを書きたい場合は、長いメッセージを複数の行に分割するメソッドlogcat
の周りに独自のラッパーを書く価値があるかもしれません。android.util.Log
もちろん、行の終わりまでクリックしてドラッグするだけで、列の幅を変更できます。それは本当に長いメッセージにとっては苦痛です。非常に長いメッセージがある場合は、通常、その行をコピーしてテキストファイルに貼り付けます。WindowsのCtrl-Cはそれをコピーします。
Jay Askrenの回答に追加するには、「テキスト」列ヘッダーの右端をダブルクリックして完全に展開することもできます。それでも、Eclipseが表示する文字数には制限があることに気づきました。