Warum kann das Market-Billing-Beispiel von Google nicht in einer signierten Release-Version erstellt werden?

8

Ich habe versucht, ähnliche Probleme zu untersuchen, aber die Die dort angebotenen Lösungen scheinen meiner besonderen Situation nicht zu entsprechen:

Ich folgte zunächst den Anweisungen für Konfigurieren und Erstellen der Beispielanwendung für In-App-Abrechnung, Ersetzen des Sicherheitsschlüssels durch den öffentlichen Schlüssel aus dem Google-Entwicklerkonto und Ändern des Paketnamens von com.example in com.billtheape .

Ich habe dann eine Nicht-Release-Version erstellt und eine "Plausibilitätsprüfung" auf meinem Android-Handy durchgeführt. Alles lief gut (außer natürlich den Android Market-Server zu erreichen, da es nur mit einer signierten Release-Version funktioniert).

Dann habe ich versucht, eine signierte Release-Version zu erstellen, erhielt aber den Fehler:

%Vor%

Das Problem ist jetzt, dass sogar das "Debug-Version" -Gebäude den gleichen Fehler erzeugte, egal wie oft ich versucht habe, das Projekt zu bereinigen.

Das sah für mich nicht wie ein Build-Path-Problem in dem Sinne aus, wie es die angenommene Antwort beschrieben hat (ich habe das auch überprüft, konnte aber nichts Verdächtiges finden). Also habe ich etwas anderes versucht:

  1. Beendete Eclipse
  2. Gefunden drei Unterverzeichnisse unter %ANDROID_HOME%\extras\google\market_billing\gen\com : (1) Android (2) Beispiel (3) billtheape
  3. Das Unterverzeichnis example .
  4. wurde gelöscht
  5. Starte Eclipse und bereinigte das Projekt.

Die Debug-Version wird jetzt korrekt erstellt, aber die signierte Version erzeugt immer noch denselben Fehler. Es stellte sich heraus, dass das Löschen dieses fremden Unterverzeichnisses nicht das war, was die Magie verursachte, sondern Eclipse neu startete und dann das Projekt löschte.

OK, also habe ich zumindest die "Debug-Version" zurück arbeiten lassen, aber der signierte Export der Exportversion bleibt mit dem gleichen Fehler fehlerfrei.

Irgendeine Idee, was dieser Fehler bedeutet, warum es passiert und wie man es repariert?

    
Bill The Ape 04.01.2012, 02:57
quelle

2 Antworten

11

Kurze Antwort: Weil Eclipse + ADT saugt. Das ist warum.

Längere Antwort: Ich habe gerade das gleiche Projekt auf eine andere Maschine mit einer etwas anderen Konfiguration importiert: Eclipse 3.6.2 (statt 3.6.1 in dem oben beschriebenen problematischen System) und SDK R13 (anstelle von R9 im problematischen System).

Dann habe ich versucht, es zu exportieren, indem ich dieselben genauen Schritte wie oben beschrieben benutze. Funktioniert wie ein Zauber!

Was ist das? Voodoo?

Was ist mit den Tagen passiert, an denen sich die IDE vorhersehbarer verhalten hat als die Software, die ich entwickeln wollte?

Nächster Schritt: Aktualisieren Sie Eclipse (auf 3.6.2) only auf dem problematischen System und prüfen Sie, ob damit auch das Problem in diesem System gelöst wird.

>

Update: Ich habe gerade die Aktualisierung von Eclipse 3.6.1 auf 3.6.2 auf dem betreffenden System abgeschlossen. Es stellt sich heraus, dass es unmöglich ist, Eclipse und zu installieren, um den bestehenden ADT beizubehalten. Ссылка zwingt Sie dazu, "das neueste & amp; am besten" zu installieren, auch wenn Sie das nicht möchten (für Konfigurationsmanagement & amp; Tracking Gründe zum Beispiel). Also mit dem neuen Eclipse 3.6.2 habe ich auch ADT 16.0.0.v201112150204-238534 bekommen. Funktioniert wie ein Zauber!

Die Ursache und Erklärung für das seltsame Verhalten der Kombination Eclipse 3.6.1 + ADT 9.0.1.v201101191456-93220 wird niemals bekannt sein ... und dies ist eine Kombination, mit der Entwickler kommerzielle Apps für den Android Market veröffentlichen sollten (und hatten) Zeitpunkt. Erstaunlich .

    
Bill The Ape 05.01.2012, 20:06
quelle
3

Ich hatte auch das gleiche Problem und löste es mit:

  1. Löschen bin & amp; gen-Ordner
  2. Entfernen Sie die Abhängigkeitsbibliotheken (falls vorhanden) und fügen Sie sie zurück
  3. hinzu
  4. Säubere das Projekt und baue es erneut auf.

Fertig!

    
Raneez Ahmed 28.11.2012 05:55
quelle

Tags und Links