Ich migriere derzeit eine Eclipse-App nach Android Studio. Diese App verwendete die In-App-Abrechnung.
Mein Hauptproblem ist das Kompilieren des Projekts und der Hilfedatei (ich denke, Sie alle verwenden diese Datei )
Ich erhalte 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, bekomme ich folgende Nachricht:
Gradle: Ausführung für Task ': xxxxxxxxxxx: compileDebugAidl' fehlgeschlagen.
Befehl konnte nicht ausgeführt werden: (...) C: \ Benutzer \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 Schnittstelle IInAppBillingService sollte in einer Datei mit dem Namen com \ xxxxxxxx \ billing \ IInAppBillingService deklariert werden .aidl.
Die Nachricht ist eindeutig ein Widerspruch zu dem Beitrag von der Google-Fehlerseite, die ich oben verlinkt habe.
Hat es jemand geschafft, diese Hilfedatei zum Laufen zu bringen und kann mir helfen?
Nur zur Information, einige Links, denen ich gefolgt bin:
/src/main/aidl/com/android/vending/billing
?gradlew.bat assemble
und es funktioniert wie ein Zauber ... sind Sie sicher, dass der Ordner / src / main / aidl / com / android / vending / billing ist nicht /src/main/aidl/com.android.vending.billing? AS 0.2.1? Gradle 0,5. +?Antworten:
Wie in der Fehlermeldung angegeben, müssen Sie
IInAppBillingService.aidl
das richtige Verzeichnis eingeben, das vom Paket vorgegeben wird (com.android.vending.billing).src/main/aidl/
Legen Sie die.aidl
Datei in dem Ordner ab, den Sie bereits habencom/android/vending/billing/
.quelle
Dies als Antwort hinzuzufügen, da es einigen Menschen zu helfen schien.
Hinweis: Stellen Sie sicher, dass Sie den erforderlichen Import einschließen, wenn Ihre Referenz nicht funktioniert
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, aber nach dem erneuten Erstellen der App wurde die Klasse erkannt
quelle
Der Rest der Beiträge hier hat bei mir nicht funktioniert, bis ich einen neuen Ordner wie hier gezeigt erstellt habe.
quelle
src/main
aufgerufenaidl
aidl
und wählen Sienew->add package
Geben Sie den Namen des Pakets ein
com.android.vending.billing
Kopieren Sie
IInAppBillingService.aidl
aus dem VerzeichnisAndroid/Sdk/extras/google/play_billing
in das VerzeichnisApp_name/app/src/main/aidl/com/android/vending/billing
can not resolve symbol IInAppBillingXXXXXX
Build
Android Studio-Menü und klicken Sie aufRebuild Project
. Dadurch wird eineIInAppBillingService.java
Datei im Inneren generiertApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Dies wird das Problem lösen.quelle
Fügen Sie diesen Code in build.gradle hinzu
Hilfeklasse neu erstellen und importieren
quelle
Die obigen Antworten konzentrieren sich auf den Speicherort der Datei, aber anscheinend haben Sie diese bereits richtig eingestellt. Ich hatte das gleiche Problem in Android Studio, aber keine der aufgelisteten Antworten löste es und ich schlug eine Stunde lang mit dem Kopf dagegen. Schließlich stellte ich fest, dass mir ein offensichtlicher Import fehlte:
Einmal habe ich hinzugefügt, dass es diese Fehlermeldung behoben hat.
Dieser Import wird in keinem der Google Billing-Dokumente erwähnt oder in einem der Codebeispiele enthalten, die ich gefunden habe. Während es für erfahrene Java-Entwickler offensichtlich sein mag, müssen Anfänger, die nur versuchen, ihr erstes Projekt zu lernen, möglicherweise ausdrücklich darauf hingewiesen werden.
quelle
Wir müssen hinzufügen
Erstelle einen Ordner - src / main / aidl / packagename und platziere die Aidl-Datei darunter.
Geben Sie in der Hilfedatei den Paketnamen an. Paket Paketname
Bereinigen Sie nun das Projekt, erstellen Sie das Projekt neu. Wir können die entsprechende Java-Datei für die Hilfe in app \ build \ generate \ source \ aidl \ debug \ packagename \ youraidl.java erstellen
quelle
Ich weiß, es klingt so einfach, aber ich kopiere Einfügen aus Google Sample All Ordner
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
und als nächstes säubere und baue ich das Projekt neu und es fand eine Referenz.
quelle
Ich habe alle Lösungen ausprobiert, aber das Problem war, dass Android Studio aus irgendeinem offensichtlichen Grund einen anderen Build-Typ des Moduls kompiliert hatte, der die AIDL-Pakete enthält, als in den Einstellungen angegeben. Vom Debug bis zur Veröffentlichung konnten die anderen Module das AIDL-Paket nicht sehen. Der Wechsel vom Debug zum Release und das Zurückkehren haben mein Problem gelöst.
quelle
Der Neustart von Android Studio hat bei mir funktioniert
eine zweite dumme Sache, die mich eine Weile gekostet hat. Ich habe den Code in Android Studio gelöscht, damit er die Datei erstellen kann, aber er hat eine .java (wie erwartet) anstelle einer .aidl Jiji erstellt, dumm von mir
quelle