如何将aidl文件添加到Android studio(来自应用内计费示例)
我目前正在将Eclipse应用程序迁移到Android Studio。 此应用正在使用应用内账单 我的主要问题是编译项目和aidl文件(我想你们都使用) 我收到以下错误消息:如何将aidl文件添加到Android studio(来自应用内计费示例),android,android-studio,gradle,android-gradle-plugin,aidl,Android,Android Studio,Gradle,Android Gradle Plugin,Aidl,我目前正在将Eclipse应用程序迁移到Android Studio。 此应用正在使用应用内账单 我的主要问题是编译项目和aidl文件(我想你们都使用) 我收到以下错误消息: Gradle: error: cannot find symbol class IInAppBillingService Gradle: error: package IInAppBillingService does not exist 因此,在一些教程之后,我将这个文件从com.mypackage.billing移到
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
因此,在一些教程之后,我将这个文件从com.mypackage.billing移到src/main/aidl
(见附件)
但是,当我这么做的时候,我得到了这个信息:
渐变:任务:XXXXXXXXXX:CompiledBugAIDL的执行失败 无法运行命令: (…)C:\Users\xxxx\AndroidStudioProjects\xxxxxx project\xxxxxxx\src\main\aidl\IInAppBillingService.aidl:45 应在名为 com\xxxxxxxx\billing\IInAppBillingService.aidl 这条消息显然与我上面链接的谷歌bug页面的帖子相矛盾 有人成功地使这个aidl文件工作并能帮助我吗 我只是想告诉大家,我遵循了一些链接:
IInAppBillingService.aidl
放在其软件包(com.android.vending.billing)指定的正确目录中
在您已经拥有的
src/main/aidl/
文件夹中,将.aidl
文件放入com/android/vending/billing/
中,将此添加为答案,因为它似乎帮助了很多人
import com.android.vending.billing.IInAppBillingService;
根据评论编辑
在我这样做之后,代码中对IInAppBillingService的引用仍然被突出显示为错误,但在重新构建应用程序后,该类被识别出来
- 在
下创建名为src/main
aidl
- 右键单击目录
,选择aidl
new->addpackage
- 输入软件包的名称
com.android.vending.billing
- 将
从目录iinapplingservice.aidl
复制到目录Android/Sdk/extras/google/play\u billing
App\u name/App/src/main/aidl/com/Android/vending/billing
- 现在继续进行InApp计费编码,在定义InApp相关服务时,您将得到一个错误
无法解析符号IInapplingxxxxxx
- 现在转到android studio菜单中的
,点击Build
。这将在rebuildproject
中生成App\u Name/App/build/generated/source/aidl/debug/com/android/vending/billingservice
文件。这将解决问题iinapplingservice.java
import com.android.vending.billing.IInAppBillingService;
一旦我添加,它解决了这个错误消息
这个导入在任何谷歌账单文档中都没有提到,也没有包含在我找到的任何代码示例中。虽然这对于经验丰富的Java开发人员来说可能是显而易见的,但是初学者如果只是想学习他们的第一个项目,可能需要明确指出。我已经尝试了所有的解决方案,但问题是Android Studio编译了,有任何明显的原因,包含AIDL包的模块的生成类型与设置指定的不同。 从调试到发布,因此其他模块无法看到AIDL包。 从调试切换到发布并返回,解决了我的问题。我们需要添加
现在清理项目,重建项目-我们可以为app\build\generated\source\aidl\debug\packagename\youraidl.java中生成的aidl创建相应的java文件
android {
sourceSets {
main {
aidl.srcDirs = ['src']
}
}
}
重建并导入aidl类重新启动Android Studio对我来说很有用
第二件傻事花了我一段时间。我在Android Studio上删除了允许他创建文件的代码,但他创建了一个.java(正如预期的那样)而不是一个.aidl Jiji,我真傻在我创建了一个新文件夹之前,这里的其余帖子对我都不起作用
我知道这听起来很简单,但我从google sample all文件夹复制粘贴 aidl/com/android/vending/billing 复制到项目aidl中(我在Android Studio中设置了项目视图)
接下来,我清理并重建项目,它找到了一个引用。如果所有名称都正确,请转到“构建>重建项目”
它对我很有用我使用Android Studio 4.1,只需右键单击鼠标->新建->AIDL->AIDL文件。 将创建一个文件并自动放置在[src/main/aidl]文件夹中。如果aidl文件夹不存在,也将创建该文件夹 此函数仅支持min sdk 16+。我的旧项目仍然可以支持,您可以临时修改min sdk t