it-swarm.com.de

wie kann ich die Hilfedatei zu Android Studio hinzufügen (aus dem In-App-Abrechnungsbeispiel)

Ich migriere derzeit eine Eclipse-App zu Android Studio .. Diese App verwendete die In-App-Abrechnung.

Mein Hauptproblem ist, das Projekt und die Hilfedatei zu kompilieren (ich schätze, Sie alle benutzen diese Datei )

Ich bekomme diese Fehlermeldung: 

Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist

Nach einigen Tutorials verschiebe ich diese Datei von com.mypackage.billing nach src/main/aidl (Siehe diese Referenz )

Aber sobald ich das tue, erhalte ich folgende Nachricht:

Gradle: Ausführung fehlgeschlagen für Task ': xxxxxxxxxxx: compileDebugAidl'.

Fehler beim Ausführen des Befehls: (...) C:\Benutzer\xxxx\AndroidStudioProjects\xxxxxxProject\xxxxxxx\src\main\aidl\IInAppBillingService.aidl: 45 Die Schnittstelle IInAppBillingService sollte in einer Datei mit dem Namen .__ deklariert werden. com\xxxxxxxx\billing\IInAppBillingService.aidl.

Die Nachricht ist eindeutig ein Widerspruch zu dem Post von der Google-Bug-Seite, auf die ich oben verlinkt habe.

Hat es jemand geschafft, diese Hilfedatei zu erstellen, und kann mir helfen?

enter image description here

Zur Information einige Links, denen ich folgte:

132
Waza_Be

Genau wie in der Fehlermeldung angegeben, müssen Sie IInAppBillingService.aidl in das richtige Verzeichnis einfügen, das von seinem Paket (com.Android.vending.billing) vorgegeben wird.

Legen Sie die src/main/aidl/-Datei in den .aidl-Ordner, den Sie bereits haben, in com/Android/vending/billing/.

159
Sam Dozor

Dies als Antwort hinzuzufügen, da es vielen Leuten zu helfen schien.

  1. Neues Verzeichnis erstellen benannt 'aidl' unter 'src/main /'. Es sollte wie folgt aussehen: "src/main/aidl".
  2. Neues Paket hinzufügen name 'com.Android.vending.billing' in das Verzeichnis 'src/main/aidl'
  3. Suchen Sie nach Ihrem SDK-Speicherort und gehen Sie zu "SDK\Extras\Google\Play_Billing". Der Standardspeicherort für die SDK ist "C:\Programme (x86)\Android\android-sdk". Wenn Sie diese benutzerdefiniert geändert haben, müssen Sie den Speicherort über den SDK-Manager ermitteln.
  4. Kopieren Sie 'IInAppBillingService.aidl' in das oben erstellte Paket. Am Ende sollte es ähnlich aussehen wie das Bild unten.

Screenshot of result

  1. Rebuild Projekt und es sollte gut sein.

Hinweis: Stellen Sie sicher, dass Sie den erforderlichen Import hinzufügen, wenn Ihre Referenz nicht funktioniert

import com.Android.vending.billing.IInAppBillingService;

https://issuetracker.google.com/issues/36973270

Aus Kommentar bearbeiten

Nachdem ich dies getan hatte, wurden die Verweise auf IInAppBillingService in meinem Code immer noch als Fehler hervorgehoben. Nach dem erneuten Erstellen der App wurde die Klasse jedoch erkannt

216
Kalel Wade

Der Rest der Beiträge hier funktionierte nicht für mich, bis ich einen neuen Ordner erstellt habe, wie hier gezeigt.

 enter image description here

9
zeeawan
  • Erstellen Sie ein neues Verzeichnis unter src/main mit dem Namen aidl
  • Klicken Sie mit der rechten Maustaste auf das Verzeichnis aidl und wählen Sie new->add package aus.
  • Geben Sie den Namen des Pakets com.Android.vending.billing ein.

  • Kopieren Sie IInAppBillingService.aidl aus dem Verzeichnis Android/Sdk/extras/google/play_billing in das Verzeichnis App_name/app/src/main/aidl/com/Android/vending/billing.

  • Fahren Sie nun mit der InApp-Abrechnungscodierung fort. Beim Definieren von InApp-bezogenen Services erhalten Sie eine Fehlermeldung. can not resolve symbol IInAppBillingXXXXXX
  • Klicken Sie nun im Android Studio-Menü auf Build und klicken Sie auf Rebuild Project. Dies erzeugt eine IInAppBillingService.Java-Datei in App_Name/app/build/generated/source/aidl/debug/com/Android/vending/billing. Dies löst das Problem.
7
Praveena

Fügen Sie diesen Code in build.gradle hinzu

Android {
    sourceSets {
        main {
            aidl.srcDirs = ['src']
        }
    }
}

Hilfsklasse neu erstellen und importieren

5
Ahmad Aghazadeh

Die obigen Antworten beziehen sich auf den Speicherort der Datei, es scheint jedoch, dass Sie diese Einstellung bereits richtig festgelegt haben. Ich habe dieses Problem in Android Studio erlebt, aber keine der aufgelisteten Antworten löste es, und ich schlug meinen Kopf eine Stunde lang dagegen. Schließlich bemerkte ich, dass mir ein offensichtlicher Import fehlte:

 import com.Android.vending.billing.IInAppBillingService;

Sobald ich hinzugefügt habe, dass diese Fehlermeldung behoben wurde.

Dieser Import wird in keinem der Google Billing-Dokumente erwähnt oder in einem der gefundenen Codebeispiele enthalten. Für erfahrene Java-Entwickler mag dies offensichtlich sein. Anfänger, die nur versuchen, ihr erstes Projekt zu lernen, müssen möglicherweise ausdrücklich darauf hingewiesen werden.

2
Nicholas

Wir müssen hinzufügen 

  1. erstellen Sie den Ordner - src/main/aidl/packagename und legen Sie die Hilfedatei unter diesem Ordner ab.

  2. Erwähnen Sie in der Hilfsdatei den Paketnamen . Package Paketname

Bereinigen Sie nun das Projekt, erstellen Sie das Projekt neu. Wir können die entsprechende Java-Datei für das in app\build\generated\source\aidl\debug\packagename\youraidl.Java generierte Hilfsmittel erstellen

1
Aag1189

Ich weiß, dass es so einfach klingt, aber ich kopiere alle Ordner aus Google Sample 

https://github.com/googlesamples/Android-play-billing/tree/master/TrivialDrive/app/src/main

hilfe/de/Android/Verkauf/Rechnungsstellung

in Projekthilfe kopiert (ich hatte die Projektansicht in Android Studio eingestellt)

und als nächstes bereinige ich ein neues Projekt und es wurde eine Referenz gefunden. 

1

der Neustart von Android Studio hat für mich funktioniert

ein zweites dummes Ding, das mich eine Weile brauchte. Ich habe den Code in Android Studio abgelegt, damit er die Datei erstellen kann, aber er erstellte (wie erwartet) eine .Java-Datei und nicht eine .aidl-Jiji, dumm von mir

0
pellyadolfo

Ich habe alle Lösungen ausprobiert, aber das Problem war, dass Android Studio aus einem offensichtlichen Grund in einem anderen Build-Typ des Moduls kompiliert wurde, das die AIDL-Pakete enthält, als es in den Einstellungen angegeben war. Von debug freigeben, damit die anderen Module das AIDL-Paket nicht sehen konnten . Beim Umschalten von Debug auf Release und Zurückkehren wurde mein Problem behoben.

0