В настоящее время я переношу приложение Eclipse на Android Studio. Это приложение использовало биллинг в приложении.
Моя основная проблема - скомпилировать проект и вспомогательный файл (я думаю, вы все используете этот файл )
Я получаю это сообщение об ошибке:
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
Итак, следуя некоторым руководствам, я перемещаю этот файл из com.mypackage.billing в src / main / aidl (см. Эту ссылку )
Но как только я это сделаю, я получаю следующее сообщение:
Gradle: не удалось выполнить задачу ': xxxxxxxxxxx: compileDebugAidl'.
Не удалось выполнить команду: (...) C: \ Users \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 interface IInAppBillingService должен быть объявлен в файле с именем com \ xxxxxxxx \ billing \ IInAppBillingService .aidl.
Сообщение явно противоречит сообщению со страницы ошибок Google, на которую я ссылался выше.
Кому-нибудь удалось заставить этот вспомогательный файл работать и может мне помочь?
Чтобы проинформировать, я перешел по некоторым ссылкам:
/src/main/aidl/com/android/vending/billing
?gradlew.bat assemble
и он работает как шарм ... вы уверены, что папка / src / main / aidl / com / android / vending / billing не /src/main/aidl/com.android.vending.billing? AS 0.2.1? Gradle 0.5. +?Ответы:
Как говорится в сообщении об ошибке, вам нужно поместить
IInAppBillingService.aidl
в правильный каталог, продиктованный его пакетом (com.android.vending.billing).В
src/main/aidl/
папке у вас уже есть, поместите.aidl
файл вcom/android/vending/billing/
.источник
Добавил это в качестве ответа, поскольку, похоже, это помогло довольно многим людям.
Примечание. Убедитесь, что вы включили необходимый импорт, если ваша ссылка не работает.
import com.android.vending.billing.IInAppBillingService;
https://issuetracker.google.com/issues/36973270
Редактировать из комментария
После того как я это сделал, ссылки на IInAppBillingService в моем коде по-прежнему выделялись как ошибки, но после перестройки приложения класс был распознан
источник
Остальные сообщения здесь не работали для меня, пока я не создал новую папку, как показано здесь.
источник
src/main
названиемaidl
aidl
, выберитеnew->add package
Введите название пакета
com.android.vending.billing
Скопировать
IInAppBillingService.aidl
из каталогаAndroid/Sdk/extras/google/play_billing
в каталогApp_name/app/src/main/aidl/com/android/vending/billing
can not resolve symbol IInAppBillingXXXXXX
Build
перейдите в меню студии Android, нажмитеRebuild Project
. Это создастIInAppBillingService.java
файл внутриApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Это решит проблему.источник
Добавьте этот код в build.gradle
android { sourceSets { main { aidl.srcDirs = ['src'] } } }
Перестроить и импортировать вспомогательный класс
источник
Вышеупомянутые ответы сосредоточены на местоположении файла, но, похоже, вы уже правильно его установили. У меня возникла такая же проблема в Android Studio, но ни один из перечисленных ответов не помог ее, и я бился головой о нее в течение часа. В конце концов я понял, что мне не хватает очевидного импорта:
import com.android.vending.billing.IInAppBillingService;
Как только я добавил, что это сообщение об ошибке устранено.
Этот импорт не упоминается ни в одной из документов Google Billing и не включен ни в один из примеров кода, которые я нашел. Хотя опытным Java-разработчикам это может быть очевидно, новичкам, просто пытающимся изучить свой первый проект, может потребоваться явное указание на это.
источник
Нам нужно добавить
создайте папку - src / main / aidl / packagename и поместите в нее файл aidl.
В файле helpl укажите название пакета. package имя_пакета
Теперь очистите проект, перестройте проект - мы можем создать соответствующий java-файл для помощника, сгенерированного в app \ build \ generated \ source \ aidl \ debug \ packagename \ youraidl.java.
источник
Я знаю, это звучит так просто, но я копирую вставку из папки Google Sample all.
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
а затем я очищаю и перестраиваю проект, и он нашел ссылку.
источник
Я пробовал все решения, но проблема заключалась в том, что Android Studio была скомпилирована по какой-либо очевидной причине в другом типе сборки модуля, который содержит пакеты AIDL, чем это было указано в настройках. От отладки до выпуска , поэтому другие модули не могли видеть пакет AIDL. Переход от отладки к выпуску и возвращение, решил мою проблему.
источник
перезапуск Android Studio работал у меня
вторая глупость, на которую у меня ушло время. Я сбросил код в Android Studio, чтобы он мог создать файл, но он создал .java (как и ожидалось) вместо .aidl Jiji, глупо с моей стороны
источник