Wie kann man gelöschte Eclipse-Projekte wieder herstellen?

  • 10 Antworten
  • Letztes Antwortdatum
J

Jajobe

Erfahrenes Mitglied
14
Hallo.
Ich bin auf einen anderen PC umgestiegen.
Habe gedacht, dass ich alle Daten mitgenommen habe. Falsch.
Wollte heute an meiner einten App weiter programmieren, da ist mir aufgefallen, dass ich sie nicht mehr habe. Und den alten PC habe ich fortgeschmiessen.
Jetzt meine Frage:
Die Apk habe ich auf meinem Handy gespeichert. Kann ich damit meine App wiederherstellen. Also die ganzen Ordner wie res, src, manifest,...
Also so dass ich sie wieder in Eclipse importieren kann?

Gesendet von meinem HTC One mit der Android-Hilfe.de App
 
Zuletzt bearbeitet von einem Moderator:
Dekompilieren ist das Stichwort. Damit kommt man auch an Java-Code und deine Resource-Dateien ran.

Problematischer find ich da eher das Zertifikat, was weg ist (keine Ahnung, ob du Apps im Store hast, aber falls ja, dann bekommst du deine bisherigen Apps nicht mehr geupdatet, wenn du das alte Zertifikat zum Signieren nicht mehr hast).
 
  • Danke
Reaktionen: Jajobe
Also das Zertifikat habe ich zum Glück noch.
Des Dekompilieren, funktioniert des mit einem Tool, oder muss einfach die .apk in .zip umschreiben?
 
Google mal, gibt einige Tools, die dir das zu Java-Code machen.

Nur in Zip umbenennen bringt dir recht wenig...

(Solltest vllt. mal über ein VCS nachdenken @ github, bitbucket o.ä.)
 
Also. Ich habe einen Tool gefunden und habe die Anweisung befolgt.
Jetzt kommt bei mir allerdings eine komische Struktur raus, die kein src Ordner beinhaltet. Dafür aber einen smali ordner. Ich weiß jetzt aber nicht, wie ich das ganze Projekt funktionierend in Eclipse impotieren kann.
 
Such deine .javas und mach sie in einen /src/package ordner...
 
So. Habe dies jetzt mal probiert. Es gibt allerdings keine .java Dateien. Sie sind alle in .smali geschrieben und den Inhalt zeigt es auch komisch an:

Code:
.class public Lcom/bjcreative/tachometer/CompassActivity;
.super Landroid/app/Activity;
.source "CompassActivity.java"


# static fields
.field private static mySensorManager:Landroid/hardware/SensorManager;


# instance fields
.field private myCompassView:Lcom/bjcreative/tachometer/MyCompassView;

.field private mySensorEventListener:Landroid/hardware/SensorEventListener;

.field private sersorrunning:Z


# direct methods
.method public constructor <init>()V
    .locals 1

    .prologue
    .line 15
    invoke-direct {p0}, Landroid/app/Activity;-><init>()V

    .line 46
    new-instance v0, Lcom/bjcreative/tachometer/CompassActivity$1;

    invoke-direct {v0, p0}, Lcom/bjcreative/tachometer/CompassActivity$1;-><init>(Lcom/bjcreative/tachometer/CompassActivity;)V

    iput-object v0, p0, Lcom/bjcreative/tachometer/CompassActivity;->mySensorEventListener:Landroid/hardware/SensorEventListener;

    .line 15
    return-void
.end method

.method static synthetic access$0(Lcom/bjcreative/tachometer/CompassActivity;)Lcom/bjcreative/tachometer/MyCompassView;
    .locals 1
    .parameter

    .prologue
    .line 19
    iget-object v0, p0, Lcom/bjcreative/tachometer/CompassActivity;->myCompassView:Lcom/bjcreative/tachometer/MyCompassView;

    return-object v0
.end method


# virtual methods
.method public onCreate(Landroid/os/Bundle;)V
    .locals 7
    .parameter "savedInstanceState"

    .prologue
    const/4 v6, 0x3

    const/4 v5, 0x0

    const/4 v4, 0x1

    .line 24
    invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

    .line 25
    invoke-virtual {p0, v4}, Lcom/bjcreative/tachometer/CompassActivity;->requestWindowFeature(I)Z

    .line 26
    const v1, 0x7f030004

    invoke-virtual {p0, v1}, Lcom/bjcreative/tachometer/CompassActivity;->setContentView(I)V

    .line 28
    const v1, 0x7f050007

    invoke-virtual {p0, v1}, Lcom/bjcreative/tachometer/CompassActivity;->findViewById(I)Landroid/view/View;

    move-result-object v1

    check-cast v1, Lcom/bjcreative/tachometer/MyCompassView;

    iput-object v1, p0, Lcom/bjcreative/tachometer/CompassActivity;->myCompassView:Lcom/bjcreative/tachometer/MyCompassView;

    .line 30
    const-string v1, "sensor"

    invoke-virtual {p0, v1}, Lcom/bjcreative/tachometer/CompassActivity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Landroid/hardware/SensorManager;

    sput-object v1, Lcom/bjcreative/tachometer/CompassActivity;->mySensorManager:Landroid/hardware/SensorManager;

    .line 31
    sget-object v1, Lcom/bjcreative/tachometer/CompassActivity;->mySensorManager:Landroid/hardware/SensorManager;

    invoke-virtual {v1, v6}, Landroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List;

    move-result-object v0

    .line 33
    .local v0, mySensors:Ljava/util/List;,"Ljava/util/List<Landroid/hardware/Sensor;>;"
    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v1

    if-lez v1, :cond_0

    .line 34
    sget-object v2, Lcom/bjcreative/tachometer/CompassActivity;->mySensorManager:Landroid/hardware/SensorManager;

    iget-object v3, p0, Lcom/bjcreative/tachometer/CompassActivity;->mySensorEventListener:Landroid/hardware/SensorEventListener;

    invoke-interface {v0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Landroid/hardware/Sensor;

    invoke-virtual {v2, v3, v1, v6}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z

    .line 35
    iput-boolean v4, p0, Lcom/bjcreative/tachometer/CompassActivity;->sersorrunning:Z

    .line 44
    :goto_0
    return-void

    .line 40
    :cond_0
    const-string v1, "No ORIENTATION Sensor"

    invoke-static {p0, v1, v4}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v1

    invoke-virtual {v1}, Landroid/widget/Toast;->show()V

    .line 41
    iput-boolean v5, p0, Lcom/bjcreative/tachometer/CompassActivity;->sersorrunning:Z

    .line 42
    invoke-virtual {p0}, Lcom/bjcreative/tachometer/CompassActivity;->finish()V

    goto :goto_0
.end method

.method protected onDestroy()V
    .locals 2

    .prologue
    .line 64
    invoke-super {p0}, Landroid/app/Activity;->onDestroy()V

    .line 66
    iget-boolean v0, p0, Lcom/bjcreative/tachometer/CompassActivity;->sersorrunning:Z

    if-eqz v0, :cond_0

    .line 67
    sget-object v0, Lcom/bjcreative/tachometer/CompassActivity;->mySensorManager:Landroid/hardware/SensorManager;

    iget-object v1, p0, Lcom/bjcreative/tachometer/CompassActivity;->mySensorEventListener:Landroid/hardware/SensorEventListener;

    invoke-virtual {v0, v1}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V

    .line 69
    :cond_0
    return-void
.end method
 
Das ist ja nur smali, mit dem Tool, was ich dir geschickt habe, bekommst du das noch in Java ausgegeben - das sieht dann so aus, wie im Anhang...
 

Anhänge

  • decompile.png
    decompile.png
    27,1 KB · Aufrufe: 384
Virtuos Ten Studio

Ein super All in one Tool zum dekompilieren (Java Code muss man in den Einstellungen afair aktivieren und mit der rechten Maustaste auf die smali Datei öffnen)
 
So. Ich habe es jetzt dank reneph fast hinbekommen.
Wenn ich jetzt den Ordner in Eclipse importieren möchte, schreibt es lauter Fehler.
Ich habe halt für meine App zwei externe Jar hinzugefügt. Ist das ein Problem?
Stelle ich mich zu doof an?
 

Anhänge

  • tachometer.zip
    459,1 KB · Aufrufe: 69
Also. Das Problem hat sich erledigt. Habe klassisch nochmal eine neue App erstellt und dazu die Activities geschrieben. Funktioniert alles wieder.
Aber trotzdem danke für die Mühe :thumbsup:
 
Zurück
Oben Unten