web-dev-qa-db-ja.com

アプリ内課金ライブラリを追加する際のエラー

link に記載されているこれらの手順に従ってこれを行っていました。

  1. IInAppBillingService.aidlファイルをAndroidプロジェクトにコピーします。(1)Eclipseを使用している場合:IInAppBillingService.aidlファイルを/ srcディレクトリにインポートします。(2) Eclipse以外の環境で開発しています:次のディレクトリ/ src/com/Android/vending/billingを作成し、IInAppBillingService.aidlファイルをこのディレクトリにコピーします。
  2. アプリケーションをビルドします。プロジェクトのIInAppBillingService.Javaディレクトリに/genという名前の生成されたファイルが表示されるはずです。
  3. TrivialDriveサンプルの/utilディレクトリからヘルパークラスをプロジェクトに追加します。プロジェクトが正しくコンパイルされるように、これらのファイルのパッケージ名宣言を適宜変更することを忘れないでください。

しかし、私がそれを終えると、Eclipseはエラーを出します:

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

aidlファイルは正しいディレクトリにありますが、IInAppBillingService.Javaファイルは生成されませんでした。

誰か見たことある?

37

プロジェクトの先頭を右クリックして、新しいパッケージを作成します...パッケージcom.Android.vending.billingを呼び出します....そこにエイドルファイルをドロップして、エラーを抑制します。

考えてみてください:関心のある人のために-誰かのエイドルファイルを使用する場合、両方のアプリのパッケージ名は同じでなければなりません。 googleは、請求支援インターフェースのパッケージ名としてcom.Android.vending.billingを使用したため、アプリでも同じパッケージ名を使用する必要があります。これは、aidlを使用するときのルールです。

56
j2emanue

Android studioユーザーの場合、これは次の構造になります。

enter image description here

この回答によると、私のために働いた。

27
David

@ David が言及した構造は、Android Studio 1.2。

請求フォルダのパスは次のようになります。

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

ここでIInAppBillingService.Java生成ファイルを確認できます。

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

幸運を !

/ srcディレクトリで、[ファイル]> [新規]> [パッケージ]をクリックし、com.Android.vending.billingという名前のパッケージを作成します

/ extras/google/play_billing /からIInAppBillingService.aidlファイルをコピーし、ワークスペースのsrc/com.Android.vending.billing /フォルダーに貼り付けます。

アプリケーションをビルドします。プロジェクトの/ genディレクトリにIInAppBillingService.Javaという名前の生成されたファイルが表示されます。

2
Zeeshan

他の提案は良いです。ただし、Eclipseは奇妙な場合があり、この場合はプロジェクトをクリーンアップすることで修正できます。

1
superarts.org

ファイルを/src/com/Android/vending/billing/IInAppBillingService.aidlに配置した場合、srcフォルダー内のディレクトリのスペルを再確認することが唯一のアドバイスです。

1
Lukas Hanacek

Build.gladleの依存関係の下に課金ライブラリを追加したことを確認します

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'
}

上記のコードの最後の行を参照してください。 「com.Android.billingclient:billing:1.1」を実装すると、同じ問題が解決しました

1
vinayak

@ j2emanueが提案したことを行い([新規/パッケージ]、[com.Android.vendor.billing]を追加)、そのディレクトリをファイルシステム(com/Android/vendor/billing)に追加し、その中にファイルをコピーしました。次に、プロジェクトの[更新]をクリックしました。ビルドして、成功しました。

1
Anna Billstrom

2018年

app/build.gradle:

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

または

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

にとって IInAppBillingService.aidl

0