Wie debugge ich ein APK, das zur Veröffentlichung signiert ist?

Lesezeit: 6 Minuten

Benutzeravatar von Adil Hussain
Adil Hussein

Ich habe eine Release-APK, die ich signiert, auf Google Play hochgeladen und auf meinem Android-Gerät installiert habe. Ich möchte dieses APK (mittels Android Studio oder Eclipse) debuggen, während es auf meinem Android-Gerät läuft. Ich habe das schon einmal gemacht und ich erinnere mich, dass es mit einem der Android-Entwicklungstools (vielleicht Dalvik Debug Monitor) war. Leider kann ich mich nicht erinnern, wie es geht, und ich konnte keine Artikel online finden. Weiß jemand wie ich das machen kann?

Anmerkungen

  1. Ich habe gesetzt android:debuggable="true" in der Manifestdatei der App.
  2. Ich habe USB-Debugging auf meinem Android-Gerät aktiviert.

  • was probierst du gerade? Wissen Sie nicht, wie Sie die Geräteansicht in Eclipse verwenden?

    – Sam Dozor

    31. Januar 2012 um 15:32 Uhr


  • Ich habe jetzt die Geräteansicht, die in Eclipse angezeigt wird. Ich kann mein Gerät in der Geräteliste sehen. Ich klicke darauf, aber die Schaltfläche „Ausgewählten Prozess debuggen“ ist deaktiviert, obwohl die Anwendung auf dem Telefon ausgeführt wird und das Quellprojekt vorhanden und im Arbeitsbereich geöffnet ist. Irgendwelche Ideen?!

    – Adil Hussain

    31. Januar 2012 um 15:43 Uhr


  • Klicken Sie auf den Paketnamen für Ihre App?

    – Sam Dozor

    31. Januar 2012 um 15:48 Uhr

  • Ja. Siehe Kommentar in Ihrer Antwort. (Danke für die Hilfe übrigens. Schätzen Sie es.)

    – Adil Hussain

    31. Januar 2012 um 16:12 Uhr

Benutzeravatar von Manuel Lopera
Manuel Loper

Ich weiß, dass dies eine alte Frage ist, aber zukünftige Referenzen. In Android Studio mit Gradle:

buildTypes {
    release {
        debuggable true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

Die Linie debuggable true war der Trick für mich.

Vor Gradle 1.0 war es das runProguard anstatt minifyEnabled. Ansehen Hier.

  • Beachten Sie, dass dies ab Gradle 1.0 der Fall ist minifyEnabled anstatt runProguard – sehen tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

    – m02ph3u5

    11. November 2015 um 16:35 Uhr

  • Als Hinweis zu dieser aktuellen Antwort würde ich selbst vermeiden, eine debugfähige Version an den Google Play Store zu senden, und Sie können dies möglicherweise nicht wie im Fall von hasnain_ahmad in der vorherigen veralteten Antwort zulassen. Es wäre weniger riskant, es nur vorübergehend zu tun, um ein Problem zu testen, das aus dem Store heruntergeladen wurde, wie z. B. die Nachverfolgung von In-App-Kaufcodes. Sie können auch versuchen, mit dem Beta-Track zu arbeiten (ich weiß nicht, ob dies möglicherweise den gleichen Fehler wie Hasnian verursacht) oder die Release-Build-APK von Ihrem Computer auf Ihr Telefon zu übertragen, um Sicherheitsprobleme zu vermeiden (der Umgang mit dem Bundle ist chaotischer ).

    – Androidcoder

    29. September 2019 um 13:35 Uhr


  • Das scheint nicht mehr zu funktionieren (wann debuggable ist eingestellt auf true, die Freigabe ist nicht unterzeichnet). stackoverflow.com/a/66622555/1720199

    – cglacet

    13. Juli 2022 um 8:52 Uhr

Benutzeravatar von Sam Dozor
Sam Dozor

Sei sicher, dass android:debuggable="true" ist in eingestellt application Tag Ihrer Manifestdatei und dann:

  1. Schließen Sie Ihr Telefon an Ihren Computer an und aktivieren Sie das USB-Debugging auf dem Telefon
  2. Öffnen Sie Eclipse und einen Arbeitsbereich, der den Code für Ihre App enthält
  3. Gehen Sie in Eclipse zu Window->Show View->Devices
  4. Schauen Sie sich die Geräteansicht an, die jetzt sichtbar sein sollte, Sie sollten Ihr Gerät aufgelistet sehen
  5. Wenn Ihr Gerät nicht aufgeführt ist, müssen Sie die ADB-Treiber für Ihr Telefon ausfindig machen, bevor Sie fortfahren
  6. Wenn Sie den Code schrittweise durchlaufen möchten, legen Sie irgendwo in Ihrer App einen Haltepunkt fest
  7. Öffnen Sie die App auf Ihrem Telefon
  8. Erweitern Sie in der Geräteansicht den Eintrag für Ihr Telefon, falls er noch nicht erweitert ist, und suchen Sie nach dem Paketnamen Ihrer App.
  9. Klicken Sie auf den Paketnamen, und oben rechts in der Geräteansicht sollten Sie einen grünen Fehler zusammen mit einer Reihe anderer kleiner Schaltflächen sehen. Klicken Sie auf den grünen Käfer.
  10. Sie sollten jetzt Ihre App anhängen/debuggen.

  • Ich komme zu Schritt 8, aber aus irgendeinem Grund wird der Paketname meiner App nicht angezeigt, wenn ich die signierte/freigegebene APK ausführe. (Seltsamerweise wird es angezeigt, wenn ich die App (Debug apk) direkt von Eclipse aus auf meinem Telefon ausführe.) Verwirrt …

    – Adil Hussain

    31. Januar 2012 um 16:18 Uhr

  • Habe es! Ich hatte die gesetzt android:debuggable="true" Attribut in der manifest Tag statt der application Tag innerhalb des Manifests!! Mein Fehler 🙁 Vielen Dank Sam_D für deine Anleitung. Hätte es ohne dich nicht geschafft oder hätte bestenfalls verdammt lange gedauert!

    – Adil Hussain

    31. Januar 2012 um 16:25 Uhr


  • Wenn ich das debuggable Schlüsselwort in build.gradle hinzufüge und im Play Store veröffentlichen möchte, wird dieser Fehler angezeigt You uploaded a debuggable APK. For security reasons you need to disable debugging before it can be published in Google Play.

    – hasnain_ahmad

    23. April 2018 um 11:46 Uhr

  • Diese Antwort ist veraltet. Anstatt androidManifest.xml solltest du updaten build.gradle. Siehe andere Antworten.

    – Antimonit

    16. Januar 2019 um 12:19 Uhr

  • @hasnain_ahmad Konntest du dafür eine Lösung finden?

    – Shashank Saxena

    22. Juli 2019 um 8:05 Uhr

Neben Manuels Weg kannst du immer noch das Manifest verwenden.

In Android Studio stable müssen Sie die folgenden 2 Zeilen hinzufügen application im AndroidManifest Datei:

    android:debuggable="true"
    tools:ignore="HardcodedDebugMode"

Der erste aktiviert das Debugging von signierten APKs und der zweite verhindert Kompilierzeitfehler.

Danach können Sie über die Schaltfläche “Debugger an Android-Prozess anhängen” an den Prozess anhängen.

CAAJm

  • @jaibatrik es muss deine apk sein und du musst den Debugger aus den Quellen anhängen. Wenn Sie beides tun und es immer noch nicht funktioniert, teilen Sie weitere Informationen mit und ich kann versuchen zu helfen

    – Sandalen

    19. Juni 2016 um 20:14 Uhr

  • Ich habe “[Fatal Error] :7:203: Das Präfix „tools“ für das Attribut „tools:ignore“, das einem Elementtyp „application“ zugeordnet ist, ist nicht gebunden.“ Ist tools:ignore=”HardcodedDebugMode” hier eine gültige Konfiguration?

    – JD

    28. April 2017 um 3:03 Uhr

  • musste ich hinzufügen lintOptions { abortOnError false } in meine app/build.grade anstatt zu verwenden tools:ignore so: android { lintOptions: { abortOnError false } }

    – Yoshi Jäger

    24. November 2019 um 13:33 Uhr


  • ich habe The prefix "tools" for attribute "tools:ignore" associated with an element type "application" is not bound. !

    – Oliver D

    29. November 2019 um 17:09 Uhr


Ich habe es mit folgendem versucht und es hat funktioniert:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

Falls Sie sich für das Debuggen entschieden haben dein apk, die bereits auf dem Markt ist, aber nicht debugfähig ist und Sie sie nicht erneut veröffentlichen möchten. Befolgen Sie also die folgenden Schritte;

  1. Dekompilieren Sie die Apk mit ApkTool(z.B. apktool d <APK_PATH>)
  2. Öffnen Sie die AndroidManifest.xml aus dekompilierten Dateien
  3. Satz android:debuggable="true" In application Schild
  4. Kompilieren Sie die geänderte Quelle mit ApkTool (zB. apktool b <MODIFIED_PATH>)
  5. Debuggbare APK bereit (was unsigniert bedeutet, dass der Store nicht veröffentlicht werden kann). Sie können nach Belieben debuggen.

Fügen Sie Folgendes zu Ihrer app build.gradle hinzu, wählen Sie die angegebene Release-Build-Variante aus und führen Sie sie aus

signingConfigs {
        config {
            keyAlias 'keyalias'
            keyPassword 'keypwd'
            storeFile file('<<KEYSTORE-PATH>>.keystore')
            storePassword 'pwd'
        }
    }
    buildTypes {
      release {
          debuggable true
          signingConfig signingConfigs.config
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

Geben Sie hier die Bildbeschreibung ein

Hinzufügen debuggable true In release In buildTypes und schalten Sie ‘Release’ unten links ein Build Variants auf Android Studio Quelle: https://mobikul.com/release-variant-of-app-enable-logcat-running-release-build-application/
Es funktioniert mich! Können Sie es versuchen?

1449390cookie-checkWie debugge ich ein APK, das zur Veröffentlichung signiert ist?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy