Как я могу добавить файл helpl в студию Android (из примера выставления счетов в приложении)
В настоящее время я переношу приложение Eclipse в Android Studio.
Это приложение использовало биллинг в приложении.
Моя основная проблема заключается в компиляции проекта и файла helpl (я думаю, вы все используете этот файл)
Я получаю это сообщение об ошибке:
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 интерфейс IInAppBillingService должен быть объявлен в файле с именем ком\XXXXXXXX\биллинг\IInAppBillingService.aidl.
Сообщение явно противоречит сообщению с страницы с ошибкой Google, с которой я связан выше.
Кто-нибудь преуспел в том, чтобы заставить этот файл helpl работать и может мне помочь?
![enter image description here]()
Просто чтобы сообщить, некоторые ссылки я последовал:
Ответы
Ответ 1
Как указано в сообщении об ошибке, вам нужно поместить IInAppBillingService.aidl
в правильную директорию, продиктованную этим пакетом (com.android.vending.billing).
В папке src/main/aidl/
, которую у вас уже есть, поместите файл .aidl
в com/android/vending/billing/
.
Ответ 2
Добавление этого в качестве ответа, поскольку, похоже, это помогло многим людям.
- Создайте новый каталог с именем 'aidl' в разделе 'src/main/'. Он должен выглядеть так: src/main/aidl.
- Добавить новый пакет имя com.android.vending.billing 'в каталог src/main/aidl' li >
- Найдите местоположение вашего sdk и перейдите на страницу "sdk\extras\google\play_billing". Местом по умолчанию для sdk является "C:\Program Files (x86)\Android\android-sdk". Если вы изменили его, то вам нужно будет определить местоположение через диспетчер sdk.
- Скопировать 'IInAppBillingService.aidl' в пакет, созданный выше. В конце концов, он должен выглядеть примерно так, как показано ниже.
![Screenshot of result]()
- Восстановить, и это должно быть хорошо.
Примечание. Обязательно укажите необходимый импорт, если ваша ссылка не работает.
import com.android.vending.billing.IInAppBillingService;
https://issuetracker.google.com/issues/36973270
Ответ 3
Ответ 4
Остальные сообщения здесь не работали для меня, пока я не создал новую папку, как показано здесь.
![введите описание изображения здесь]()
Ответ 5
В приведенных выше ответах основное внимание уделяется расположению файлов, но, похоже, вы уже правильно это установили. Я испытал эту же проблему в Android Studio, но ни один из перечисленных ответов не разрешил ее, и я ударил головой о нее в течение часа. В конце концов, я понял, что у меня отсутствует очевидный импорт:
import com.android.vending.billing.IInAppBillingService;
Как только я добавил, что он разрешил это сообщение об ошибке.
Этот импорт не упоминается ни в одном из документов Google Billing или не содержится ни в одном из примеров кода, которые я нашел. Хотя для опытных разработчиков Java это может быть очевидным, новичкам, которые просто пытаются изучить свой первый проект, может потребоваться его явно указано.
Ответ 6
Добавьте этот код в build.gradle
android {
sourceSets {
main {
aidl.srcDirs = ['src']
}
}
}
Восстановить и импортировать класс accl
Ответ 7
Нам нужно добавить
Теперь очистите проект, перестройте проект. Мы можем создать соответствующий java файл для helpl, сгенерированный в приложении\build\сгенерированный\source\aidl\debug\packagename\youraidl.java
Ответ 8
Я пробовал все решения, но проблема заключалась в том, что Android Studio с любой видимой причиной скомпилировала другой тип сборки, содержащий пакеты AIDL, чем это было задано настройками.
От отладки для выпуска, чтобы другие модули не могли видеть AIDL pkg.
Переключение с отладки на выпуск и возврат, решило мою проблему.
Ответ 9
перезагрузка Android Studio работала для меня
вторая глупая вещь, которая заняла у меня некоторое время. Я отказался от кода в Android Studio, чтобы он мог создать файл, но он создал .java(как и ожидалось) вместо .aidl Jiji, глупый из меня
Ответ 10
Я знаю, что это звучит так просто, но я копирую пасту из образца Google всей папки
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
aidl/ком/Android/вендинг/биллинг
скопирован в projectipl (я установил представление проекта в Android Studio)
а затем я очищаю и перестраиваю проект, и он нашел ссылку.