it-swarm.com.de

Fehler beim Hinzufügen der In-App-Rechnungsbibliothek

Ich tat dies, indem ich diese Schritte befolgte, wie in link erwähnt. 

  1. Kopieren Sie die IInAppBillingService.aidl-Datei in Ihr Android-Projekt. </ P> (1) Wenn Sie Eclipse verwenden: Importieren Sie die IInAppBillingService.aidl-Datei in Ihr/src-Verzeichnis. </ P> (2) Wenn Sie in entwickeln Nicht-Eclipse-Umgebung: Erstellen Sie das folgende Verzeichnis/src/com/Android/vending/billing und kopieren Sie die IInAppBillingService.aidl-Datei in dieses Verzeichnis. </ p>
  2. Erstellen Sie Ihre Anwendung. Sie sollten eine generierte Datei mit dem Namen IInAppBillingService.Java im Verzeichnis /gen Ihres Projekts sehen.
  3. Fügen Sie die Helfer-Klassen aus dem Verzeichnis /util des TrivialDrive-Beispiels Ihrem Projekt hinzu. Denken Sie daran, die Paketnamen-Deklarationen in diesen Dateien entsprechend zu ändern, damit Ihr Projekt korrekt kompiliert wird.

Aber als ich damit fertig bin, gibt mir Eclipse einen Fehler:

interface IInAppBillingService should be declared in a file called com\Android\vending\billing\IInAppBillingService.aidl.

die aidl-Datei befindet sich im richtigen Verzeichnis, die IInAppBillingService.Java-Datei wurde jedoch nicht generiert. 

Hat jemand das schon mal gesehen?

37

klicken Sie mit der rechten Maustaste auf den Kopf des Projekts, und erstellen Sie ein neues PACKAGE ... Rufen Sie das Paket com.Android.vending.billing ... auf. Legen Sie die Hilfsdatei dort ab, um den Fehler zu löschen. 

Einige Denkanstöße: Für Interessierte - Wenn Sie die Hilfsdatei einer anderen Person verwenden, muss der Paketname für beide Apps gleich sein. google verwendete com.Android.vending.billing als Paketnamen für die Rechnungshilfeschnittstelle. Sie MÜSSEN in Ihrer App auch den gleichen Paketnamen verwenden. Dies ist die Regel bei der Verwendung von helpl. 

56
j2emanue

Für Benutzer von Android-Studios sollte dies die Struktur sein:

enter image description here

Arbeitete für mich gemäß dieser Antwort.

27
David

Die von @David erwähnte Struktur funktioniert in Android Studio 1.2 einwandfrei.

Ihr Pfad für den Rechnungsordner sollte folgendermaßen aussehen: 

[YOUR_APP_FOLDER]/app/src/main/aidl/com/Android/vending/billing/IInAppBillingService.aidl

Hier können Sie die von IInAppBillingService.Java generierte Datei überprüfen:

[YOUR_APP_FOLDER]/app/build/generated/source/aidl/debug/com/Android/vending/IInAppBillingService.Java

Viel Glück !

Klicken Sie im Verzeichnis/src auf Datei> Neu> Paket und erstellen Sie ein Paket mit dem Namen com.Android.vending.billing

Kopieren Sie die Datei IInAppBillingService.aidl aus dem Ordner/extras/google/play_billing/und fügen Sie sie in den Ordner src/com.Android.vending.billing/in Ihrem Arbeitsbereich ein.

Erstellen Sie Ihre Anwendung. Sie sollten eine generierte Datei mit dem Namen IInAppBillingService.Java im Verzeichnis/gen Ihres Projekts sehen.

2
Zeeshan

Die anderen Vorschläge sind gut. Manchmal ist Eclipse jedoch auch etwas seltsam, und eine Projektbereinigung kann dies in diesem Fall beheben.

1
superarts.org

Der einzige Rat, den ich Ihnen geben kann, ist, die Rechtschreibung der Verzeichnisse in Ihrem src-Ordner erneut zu überprüfen, wenn Sie die Datei in /src/com/Android/vending/billing/IInAppBillingService.aidl ablegen

1
Lukas Hanacek

Ich tat, was @ j2emanue vorschlug (klicken Sie auf "Neu/Paket", fügen Sie "com.Android.vendor.billing" hinzu), und fügte hinzu, dass Verzeichnisse meinem Dateisystem hinzugefügt wurden ("com/Android/vendor/billing") und dann die Datei darin kopiert. Klicken Sie dann im Projekt auf Aktualisieren. Bauen, und es ist gelungen.

1
Anna Billstrom

2018

app/build.gradle:

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

oder

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

für IInAppBillingService.aidl

0

Vergewissern Sie sich, dass Sie unter Abhängigkeiten eine Abrechnungsbibliothek in Ihrer build.gladle hinzugefügt haben

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'

implementation 'com.Android.billingclient:billing:1.1'
}

Siehe die letzte Zeile im obigen Code. Die Implementierung von "com.Android.billingclient: billing: 1.1" hat dasselbe Problem für mich gelöst

0
vinayak