添加应用内结算库时出错

时间:2012-12-18 06:49:34

标签: android google-play in-app-billing google-play-services

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

  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目录中的帮助程序类添加到项目中。请记住相应地更改这些文件中的包名称声明,以便正确编译项目。
  4. 但是当我完成时,Eclipse给了我一个错误:

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

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

    以前有人见过吗?

9 个答案:

答案 0 :(得分:56)

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

有些值得深思:对于那些有兴趣的人 - 当使用某人的aidl文件时,两个应用程序的包名必须相同。谷歌使用com.android.vending.billing作为他们的计费援助界面的包名,所以你必须在你的应用程序中使用相同的包名。这是使用aidl时的规则。

答案 1 :(得分:27)

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

enter image description here

Worked for me, according to this answer.

答案 2 :(得分: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
祝你好运!

答案 3 :(得分:2)

在/ src目录中,单击文件>新>打包,然后创建一个名为com.android.vending.billing的包

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

我做了@ j2emanue建议的内容(点击New / Package,添加“com.android.vendor.billing”),我还将该目录添加到我的文件系统(com / android / vendor / billing)然后复制了文件在里面。然后,单击项目上的“刷新”。建立,并成功。

答案 7 :(得分:0)

检查是否已在依赖项下的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'对我来说解决了同样的问题

答案 8 :(得分:0)

2018

app/build.gradle:

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

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

IInAppBillingService.aidl