无法为inApp购买构建IMarketBillingService.aidl

时间:2011-06-22 08:12:36

标签: android in-app-purchase

我尝试导入com.android.vending.billing.IMarketBillingService。但我得到了错误:

The import com.android.vending.billing.IMarketBillingService cannot be resolved.

我有另一个项目,我做同样的事情,它完美地工作。我将应用内购买所需的文件复制到新项目中。这意味着数据必须正确。 (我更换了包名)我多次检查我忘了上课。几天前,我为同事复制了文件,但也可以。

我也尝试过清理和清理项目。

12 个答案:

答案 0 :(得分:27)

我通过取消选中项目属性中的所有构建器来修复此问题,单击“确定”,然后再次检查它们并单击“确定”。非常感谢,Google!

答案 1 :(得分:6)

我也有同样的问题。我发现在任何应用程序内的任何计费来源之前放入.aidl会生成.java。

当您尝试在创建之前引用该.java文件时,您的项目将包含错误。因为您有错误,所以不会构建您的资源,即R.java或IMarketBillingService.java。

答案 2 :(得分:2)

从以下链接下载源代码,将您的代码与下载的代码进行比较,我相信您会解决您的问题。

http://www.anddev.org/resources/file/2875

答案 3 :(得分:2)

你也可以在eclipse中删除gen文件夹,这应该通过eclipse插件触发重建并创建相应的java类。

答案 4 :(得分:2)

以下是解决这个问题的原因:

有关如何在IInAppBillingService.aidl文件中设置的文档含糊不清:

  

将IInAppBillingService.aidl文件复制到Android项目中。

     
      
  • 如果您使用的是Eclipse:将IInAppBillingService.aidl文件导入/ src目录。
  •   
  • 如果您在非Eclipse环境中进行开发:创建以下目录   / src / com / android / vending / billing并将IInAppBillingService.aidl文件复制到此目录中。
  •   

对我来说,这意味着如果我在Eclipse中,我应该将它放在我的src目录的根目录中,但如果没有,那么我需要将它放在指定的包中。所以,我把IInAppBillingService.aidl放在我的/ src目录的根目录中,它有所有的失败。这就是问题所在。

我不知道为什么文档是这样编写的,但解决方法是将此文件放入正确的包目录,该目录是。{1}},如.aidl文件中声明的那样。然后它成功生成并正确构建了所有其他文件。

答案 5 :(得分:1)

最后,我使用旧项目的生成java文件而不是IMarketBillingService.aidl。现在它有效。

答案 6 :(得分:1)

至少在Eclipse中,您需要做的是更改Java编译器设置(因为这是编译器错误)。

尝试将编译器合规性级别从1.5更改为1.6或1.7。它对我有用。

答案 7 :(得分:1)

我遇到了这个问题,这就是救了我的事:

  1. 在'src / main /'下创建一个名为'aidl'的新目录。它应该看起来像' src / main / aidl '。
  2. 将新软件包名称' com.android.vending.billing '添加到目录' src / main / aidl '
  3. 将'IInAppBillingService.aidl'复制到上面创建的包中。最后,它看起来应该与下图相似。
  4. Screenshot of result


    参考

    https://code.google.com/p/android/issues/detail?id=56755 https://stackoverflow.com/a/22769862/2615737

答案 8 :(得分:0)

迁移到新计算机时遇到了这个令人沮丧的问题。对我有用的是在命令行中使用“ant debug”来生成计费服务文件。

http://developer.android.com/guide/developing/building/building-cmdline.html

答案 9 :(得分:0)

导入整个“android-sdk-macosx / extras / google”文件夹及其所有项目。 “com.example.dungeons.Dungeons”项目现在应该编译好了。

答案 10 :(得分:0)

我在这里尝试了一些方法,但对我没用。

对我来说最简单的是Clean,然后是Build All

答案 11 :(得分:0)

就我而言,我必须从Project Properties> Android> Project Build Target中选择Android Project Target。 显然,在我上次升级Eclipse之后,我没有下载过去用于项目的API级别。因此,Eclipse无法解析上次使用的API级别,并导致错误。