2014-12-09 17 views
5

Sto cercando di implementare acquisti in-app per il mio progetto che utilizza gradle in Android Studio.LibGDX Acquisti in-app e Gradle

Il mio problema è che non ho idea di come includere il sdk di Android nel progetto.

Ad esempio, se provo a creare qualcosa di semplice come l'oggetto IabHelper, non può nemmeno essere risolto (il che mi fa pensare che la libreria non funzioni).

Qualcuno ha qualche esperienza in questo? Ho cercato di risolvere tutto questo giorno nel mio tempo libero nel mio giorno libero, molto frustrante.

Il mio attuale file di Gradle:

buildscript { 
    repositories { 
     mavenCentral() 
     mavenLocal() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.13.2' 
     classpath 'com.github.jtakakura:gradle-robovm-plugin:0.0.9' 
    } 
} 

allprojects { 
    apply plugin: "eclipse" 
    apply plugin: "idea" 

    version = '1.0' 
    ext { 
     appName = 'MyAppName' 
     gdxVersion = '1.4.1' 
     //roboVMVersion = '0.0.13' 
     roboVMVersion = '1.0-beta-01' 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     maven { url "https://oss.sonatype.org/content/repositories/releases/" } 
    } 
} 

project(":desktop") { 
    apply plugin: "java" 


    dependencies { 
     compile project(":core") 

     compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop" 
    } 
} 

project(":android") { 

    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
     compile "com.badlogicgames.gdx:gdx-bullet:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" 
     compile "com.badlogicgames.box2dlights:box2dlights:1.2" 
     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" 
     compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion" 
    } 
} 

project(":ios") { 
    apply plugin: "java" 
    apply plugin: "robovm" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "org.robovm:robovm-rt:${roboVMVersion}" 
     compile "org.robovm:robovm-cocoatouch:${roboVMVersion}" 
     compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" 
     natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios" 
    } 
} 

project(":core") { 
    apply plugin: "java" 

    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-bullet:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-bullet:$gdxVersion" 
     compile "com.badlogicgames.box2dlights:box2dlights:1.2" 
     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" 

     //compile "com.badlogicgames.gdx:gdx-ai:1.4.0" 

     compile 'net.dermetfan.libgdx-utils:libgdx-utils:0.4.0' 
     compile 'net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.4.0' // Box2D module 
    } 
} 

tasks.eclipse.doLast { 
    delete ".project" 
} 

** UPDATE **

Purtroppo non ho potuto risolvere questo dopo una settimana di sforzi, ho anche riformattato il mio MAC e redownloaded tutto, didn' lavoro. Gradle ...

In ogni caso, ho risolto utilizzando un eccellente libreria di terze parti che richiedono solo una riga di codice:

https://github.com/anjlab/android-inapp-billing-v3

risposta

0

Mi aspetterei che avete bisogno di almeno questo nella vostra project(":android")

android { 
buildToolsVersion "19.0.3" 
compileSdkVersion 19 
} 
+0

Impossibile risolvere la versione di build. –

+0

Posso vedere che LibGDX 1.4.1 supporta gli strumenti di sviluppo Android versione 20. Verifica quale versione stai utilizzando e regola BuildToolsVersion di conseguenza. Hai installato gli ultimi strumenti di sviluppo Android? È necessario installarli per l'esecuzione dello script gradle. –

+0

Io uso la versione 1.5, ci proverò stasera. Grazie mille a proposito. –

0

IabHelper classe situata nel pacchetto com.example.android.trivialdrivesample.util. In base allo official documentation, è necessario copiare la directory utils con la classe IabHelper dall'app campione TrivialDrive per il proprio progetto.

Per aggiungere la fatturazione in-app versione 3 biblioteca per il progetto esistente di fatturazione in-app:

  1. Copiare il file IInAppBillingService.aidl al progetto Android.

    • In Android Studio: Creare una directory denominata aidl sotto src/main, aggiungere un nuovo pacchetto>com.android.vending.billing in questa directory, e importare il file IInAppBillingService.aidl in questo pacchetto.

    • In Eclipse: importare il file IInAppBillingService.aidl nella directory/src.

    • In altri ambienti di sviluppo: creare la seguente directory /src/com/android/vending/billing e copiare il file IInAppBillingService.aidl in questa directory.

  2. Crea la tua applicazione. Dovresti vedere un file generato chiamato IInAppBillingService.java nella directory/gen del tuo progetto.

  3. Aggiungere le classi di supporto dalla directory /util del campione TrivialDrive al progetto. Ricordarsi di modificare le dichiarazioni dei nomi dei pacchetti in questi file di conseguenza in modo che il progetto venga compilato correttamente.

Ora il progetto deve contenere la libreria di fatturazione in-app versione 3.

Dopo questa procedura sarà possibile creare l'oggetto IabHelper nel codice.

+0

Non ho fortuna, non riesco nemmeno a compilare i servizi di Google Play (Ultima versione +) –

Problemi correlati