how can I add the aidl file to Android studio (fro

2019-01-04 21:37发布

I am currently migrating an Eclipse app to Android Studio. This app was using the in app billing.

My main problem is to compile the project and the aidl file (I guess you all use this file)

I get this error message:

Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist

So, following some tutorials, I move this file from com.mypackage.billing to src/main/aidl (see this reference)

But as soon, as I do that, I get this message:

Gradle: Execution failed for task ':xxxxxxxxxxx:compileDebugAidl'.

Failed to run command: (...) C:\Users\xxxx\AndroidStudioProjects\xxxxxxProject\xxxxxxx\src\main\aidl\IInAppBillingService.aidl:45 interface IInAppBillingService should be declared in a file called com\xxxxxxxx\billing\IInAppBillingService.aidl.

The message is clearly a contradiction with the post from the Google bug page I linked above.

Anyone suceeded to make this aidl file to work and can help me?

enter image description here

Just to inform, some links I followed:

10条回答
We Are One
2楼-- · 2019-01-04 22:06

I know it sounds so easy, but I copy paste from google sample all folder

https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main

aidl/com/android/vending/billing

copied into project aidl ( I had set project view in Android Studio)

and next I clean and rebuild project and it found a reference.

查看更多
手持菜刀,她持情操
3楼-- · 2019-01-04 22:17
  • Create new directory under src/main called aidl
  • Right click on directory aidl, select new->add package
  • Enter Name of the package com.android.vending.billing

  • Copy IInAppBillingService.aidl from the directory Android/Sdk/extras/google/play_billing to the directory App_name/app/src/main/aidl/com/android/vending/billing

  • Now go ahead with InApp billing coding and while defining InApp related services you will get an error can not resolve symbol IInAppBillingXXXXXX
  • Now goto to Build from android studio menu , click on Rebuild Project. This will generate IInAppBillingService.java file inside App_Name/app/build/generated/source/aidl/debug/com/android/vending/billing. This will solve the issue.
查看更多
你好瞎i
4楼-- · 2019-01-04 22:21

I've tried every solutions, but the problem was that Android Studio had compiled, with any apparent reason, in a different build type of the module that contains the AIDL packages than it was specified by the settings. From debug to release, so the other modules couldn't see the AIDL pkg. Switching from debug to release and turns back, solved my problem.

查看更多
神经病院院长
5楼-- · 2019-01-04 22:24

We need to add

  1. create folder - src/main/aidl/packagename and place aidl file under this.

  2. In the aidl file - mention the package name. package packagename

Now clean the project, rebuild the project - We can the corresponding java file for the aidl generated in app\build\generated\source\aidl\debug\packagename\youraidl.java

查看更多
一纸荒年 Trace。
6楼-- · 2019-01-04 22:25

Adding this as an answer since it seemed to help quite a few people.

  1. Create a new directory named 'aidl' under 'src/main/'. It should look like 'src/main/aidl'.
  2. Add a new package name 'com.android.vending.billing' to the directory 'src/main/aidl'
  3. Locate your sdk location and go to "sdk\extras\google\play_billing". Default location for the sdk is "C:\Program Files (x86)\Android\android-sdk". If you custom changed it, then you will have to figure out the location through the sdk manager.
  4. Copy 'IInAppBillingService.aidl' into the package created above. In the end, it should look similar to the image below.

Screenshot of result

  1. Rebuild project and it should be good to go.

Note: Make sure you include the necessary import if your reference isn't working

import com.android.vending.billing.IInAppBillingService;

https://issuetracker.google.com/issues/36973270

Edit From Comment

After I did this, the references to IInAppBillingService in my code were still highlighted as errors, but after rebuilding the app, the class was recognized

查看更多
聊天终结者
7楼-- · 2019-01-04 22:26

The rest of posts here didn't work for me till I created a new folder like shown here.

enter image description here

查看更多
登录 后发表回答