Как просмотреть отладочные сообщения на Android? - PullRequest
0 голосов
/ 23 января 2019

У меня есть Android-приложение, которое работает очень нестабильно, и я хочу это исправить. Поэтому я декомпилировал apk с помощью apktool и решил, что приложение вызывает группу Log.d, где оно записывает полезную информацию. Затем я установил программу просмотра журнала для Android и понял, что она ничего не показывает. Я прочитал обзоры CatLog (например), и пользователь сказал, что он не работает на последней версии Android. Что ж, теперь я задаюсь вопросом, что делать - теперь я могу просмотреть трассировку журнала на Android, если мой телефон не рутирован?

Редактировать : Интересно, есть ли способ изменить каждый вызов Log.d или Log.e внутри файлов * .smali, декомпилированных apktool, чтобы я мог написать слово в текстовый файл? непосредственно без взаимодействия с механизмами журналов ОС. Кто-нибудь делал подобное? Я также понимаю, что было бы намного лучше использовать удаленную отладку, но у меня просто сейчас нет доступа к компьютеру - только к смартфону и серверу Linux по SSH.

Редактировать 2 : вот манифест приложения. Я пытаюсь выяснить, можно ли добавить в него флаг отладки.

<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:targetSdkVersion="16" package="com.anda.otgdiskpro" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002">
    <uses-feature android:name="android.hardware.usb.accessory"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:largeHeap="true">
        <activity android:configChanges="orientation" android:label="@string/app_name" android:launchMode="singleInstance" android:name="com.anda.otgdiskpro.USBActivityPro">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:label="Settings" android:name="com.anda.otgdisk.PrefPage"/>
        <activity android:configChanges="orientation" android:label="@string/title_activity_music" android:launchMode="singleInstance" android:name="com.anda.otgdisk.MusicActivity"/>
    </application>
</manifest>

Редактировать 3 : Ага! Очевидно, я должен поставить "android: debuggable =" true "" I в тег приложения AndroidManifest.xml ... Хорошо. Я изменил AndroidManifest.xml:

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:largeHeap="true" android:debuggable="true">

Скомпилировал его в apk, подписал и установил на смартфон. Также я установил LogCat Extreme. Запустите оба приложения и ... нет журналов в LogCat Extreme. Кажется, что Android не позволяет мне просматривать журналы других приложений. Верно?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Попробуйте добавить:

{
    debuggable true
} 

в файл build.gradle.

0 голосов
/ 23 января 2019

Ваше приложение должно иметь debuggable true, определенное в варианте сборки, чтобы вы могли видеть Log сообщения.

См. Эту документацию .

После того как в вашем приложении включена отладка, вы можете использовать Logcat для просмотра журналов вашего приложения через имя пакета. Я никогда не использовал CatLog, но я предполагаю, что это просто анализ Logcat для отображения журналов.

...