39

我按照链接中提到的这些步骤执行此操作。

  1. IInAppBillingService.aidl文件复制到您的 Android 项目。

    (1) 如果您使用 Eclipse:将IInAppBillingService.aidl文件导入您的 /src 目录。

    (2)如果是在非Eclipse环境下开发:创建如下目录/src/com/android/vending/billing,将IInAppBillingService.aidl文件复制到该目录下。

  2. 构建您的应用程序。IInAppBillingService.java您应该会在/gen项目目录中看到一个名为的生成文件。
  3. 将示例/util目录中的帮助程序类添加到您的项目中。TrivialDrive请记住相应地更改这些文件中的包名称声明,以便您的项目正确编译。

但是当我完成时,Eclipse 给了我一个错误:

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

aidl文件位于正确的目录中,但未 IInAppBillingService.java生成该文件。

以前有人见过吗?

4

9 回答 9

57

右键单击项目的头部并创建一个新的 PACKAGE ...调用包 com.android.vending.billing ....将aidl文件放在那里以消除错误。

一些思考:对于那些有兴趣的人 - 当使用某人的aidl文件时,两个应用程序的包名称必须相同。google 使用 com.android.vending.billing 作为其计费辅助界面的包名称,因此您还必须在您的应用程序中使用相同的包名称。这是使用aidl时的规则。

于 2013-01-23T02:52:44.967 回答
28

对于 android studio 用户,应该是这样的结构:

在此处输入图像描述

根据这个答案,为我工作。

于 2015-02-20T14:25:37.637 回答
4

@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

祝你好运 !

于 2015-05-10T18:31:51.523 回答
2

在 /src 目录中,单击 File > New > Package,然后创建一个名为 com.android.vending.billing 的包

从 /extras/google/play_billing/ 复制 IInAppBillingService.aidl 文件并将其粘贴到工作区的 src/com.android.vending.billing/ 文件夹中。

构建您的应用程序。您应该在项目的 /gen 目录中看到一个名为 IInAppBillingService.java 的生成文件。

于 2014-03-29T22:30:43.587 回答
1

我能给您的唯一建议是重新检查 src 文件夹中目录的拼写,如果您将文件放入 /src/com/android/vending/billing/IInAppBillingService.aidl 它应该可以工作

于 2013-01-14T10:19:08.563 回答
1

其他建议都不错。有时 eclipse 可能只是很奇怪,在这种情况下,清理项目可以修复它。

于 2013-12-18T08:45:36.440 回答
1

我按照@j2emanue 的建议做了(单击新建/包,添加“com.android.vendor.billing”),我还将目录添加到我的文件系统(com/android/vendor/billing),然后将文件复制到其中。然后,单击项目上的刷新。构建,它成功了。

于 2014-02-13T04:09:41.527 回答
1

检查您是否在 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' 为我解决了同样的问题

于 2018-07-03T07:45:05.087 回答
0

2018

app/build.gradle:

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

或者

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

为了IInAppBillingService.aidl

于 2018-07-08T08:07:41.690 回答