Я хочу напечатать что-нибудь в консоли, чтобы я мог отладить это. Но по какой-то причине в моем приложении для Android ничего не печатается.
Как мне отладить тогда?
public class HelloWebview extends Activity {
WebView webview;
private static final String LOG_TAG = "WebViewDemo";
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl("http://example.com/");
System.out.println("I am here");
}
Ответы:
Исправление:
На эмуляторе и большинстве устройств
System.out.println
перенаправляется в LogCat и печатается с использованиемLog.i()
. Это может быть не так на очень старых или пользовательских версиях Android.Оригинал:
Консоли для отправки сообщений нет, поэтому
System.out.println
сообщения теряются. Точно так же это происходит, когда вы запускаете «традиционное» Java-приложение с помощьюjavaw
.Вместо этого вы можете использовать класс Android
Log
:Затем вы можете просмотреть журнал либо в представлении Logcat в Eclipse, либо выполнив следующую команду:
Полезно привыкнуть к выводу logcat, поскольку именно там отображаются следы стека любых необработанных исключений.
Первая запись в каждом вызове журнала - это тег журнала, который определяет источник сообщения журнала. Это полезно, поскольку вы можете отфильтровать вывод журнала, чтобы показать только ваши сообщения. Чтобы убедиться, что вы согласны с вашим тегом журнала, вероятно, лучше определить его один раз как
static final String
где-то.Существует пять однобуквенных методов,
Log
соответствующих следующим уровням:e()
- Ошибкаw()
- Предупреждениеi()
- Информацияd()
- отладкаv()
- Подробныйwtf()
- Какой ужасный провалВ документации сказано следующее об уровнях :
источник
Используйте класс Log . Выход видим с LogCat
источник
Да, это так. Если вы используете эмулятор, он будет отображаться в представлении Logcat под
System.out
тегом. Напишите что-нибудь и попробуйте в своем эмуляторе.источник
Конечно, чтобы увидеть результат в logcat, вы должны установить уровень Log как минимум на «Info» ( уровень журнала в logcat ); в противном случае, как это случилось со мной, вы не увидите свой вывод.
источник
если вам действительно нужен System.out.println для работы (например, он вызывается из сторонней библиотеки). Вы можете просто использовать отражение, чтобы изменить поле в System.class:
Класс RedirectLogOutputStream:
источник
он не отображается в вашем приложении ... он находится под logcat вашего эмулятора
источник
На вашем телефоне нет места для чтения
System.out.println();
Вместо этого, если вы хотите увидеть результат чего-либо, либо посмотрите на свое
logcat/console
окно, либо сделайтеToast
или,Snackbar
если вы используете новое устройство, на экране устройства появится сообщение :) Это то, что я делаю, когда мне нужно проверить например, куда это идет вswitch case
коде! Веселого программирования! :)источник
Android Monitor
и затемlogcat
вижу много сообщений, которые постоянно печатаются ... Это должно быть так? Тогда как мне увидеть мои собственные сообщения отладки?System.out.println ("...") отображается на мониторе Android в Android Studio
источник
Я оставлю это для дальнейших посетителей, так как для меня это было что-то из-за неспособности основного потока
System.out.println
.Использование:
LogUtil.println("This is a string");
источник
Недавно я заметил ту же проблему в Android Studio 3.3. Я закрыл другие проекты студии Android и Logcat начал работать. Принятый ответ выше не совсем логичен.
источник