Atualmente, estou migrando um aplicativo Eclipse para o Android Studio. Este aplicativo estava usando o faturamento no aplicativo.
Meu principal problema é compilar o projeto e o arquivo aidl (acho que todos vocês usam esse arquivo )
Recebo esta mensagem de erro:
Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist
Portanto, seguindo alguns tutoriais, movo esse arquivo de com.mypackage.billing para src / main / aidl (consulte esta referência )
Mas assim que faço isso, recebo esta mensagem:
Gradle: Falha na execução da tarefa ': xxxxxxxxxxx: compileDebugAidl'.
Falha ao executar o comando: (...) C: \ Users \ xxxx \ AndroidStudioProjects \ xxxxxxProject \ xxxxxxx \ src \ main \ aidl \ IInAppBillingService.aidl: 45 A interface IInAppBillingService deve ser declarada em um arquivo chamado com \ xxxxxxxx \ billing \ IInAppBillingService .aidl.
A mensagem é claramente uma contradição com a postagem da página de bug do Google que eu vinculei acima.
Alguém conseguiu fazer esse arquivo de ajuda funcionar e pode me ajudar?
Só para informar, alguns links que eu segui:
/src/main/aidl/com/android/vending/billing
?gradlew.bat assemble
e funciona como um encanto ... você tem certeza de que a pasta é / src / main / aidl / com / android / vending / billing não /src/main/aidl/com.android.vending.billing? AS 0.2.1? Nível 0,5 +?Respostas:
Assim como a mensagem de erro diz, você precisa colocar
IInAppBillingService.aidl
no diretório correto, ditado por seu pacote (com.android.vending.billing).Dentro da
src/main/aidl/
pasta que você já tem, coloque o.aidl
arquivo nocom/android/vending/billing/
.fonte
Adicionando isso como uma resposta, pois parecia ajudar algumas pessoas.
Nota: Certifique-se de incluir a importação necessária se sua referência não estiver funcionando
https://issuetracker.google.com/issues/36973270
Editar do comentário
Depois disso, as referências a IInAppBillingService no meu código ainda eram destacadas como erros, mas após a reconstrução do aplicativo, a classe foi reconhecida
fonte
O restante das postagens aqui não funcionou para mim até eu criar uma nova pasta, como mostrado aqui.
fonte
src/main
chamadoaidl
aidl
, selecionenew->add package
Digite o nome do pacote
com.android.vending.billing
Copie
IInAppBillingService.aidl
do diretórioAndroid/Sdk/extras/google/play_billing
para o diretórioApp_name/app/src/main/aidl/com/android/vending/billing
can not resolve symbol IInAppBillingXXXXXX
Build
menu do estúdio android, clique emRebuild Project
. Isso irá gerar oIInAppBillingService.java
arquivo dentroApp_Name/app/build/generated/source/aidl/debug/com/android/vending/billing
. Isso resolverá o problema.fonte
Adicione este código em build.gradle
Reconstruir e importar classe de auxílio
fonte
As respostas acima concentram-se no local do arquivo, mas parece que você já o definiu corretamente. Tive o mesmo problema no Android Studio, mas nenhuma das respostas listadas o resolveu e bati com a cabeça por uma hora. Eventualmente, percebi que estava faltando uma importação óbvia:
Uma vez eu adicionei que resolveu esta mensagem de erro.
Essa importação não é mencionada em nenhum dos documentos de faturamento do Google nem incluída em nenhum dos exemplos de código que encontrei. Embora possa ser óbvio para desenvolvedores Java experientes, os iniciantes que estão apenas tentando aprender seu primeiro projeto podem precisar explicitamente dele.
fonte
Precisamos adicionar
crie uma pasta - src / main / aidl / packagename e coloque o arquivo aidl nele.
No arquivo aidl - mencione o nome do pacote. pacote packagename
Agora limpe o projeto, reconstrua-o - Podemos o arquivo java correspondente para o aidl gerado em app \ build \ gerados \ source \ aidl \ debug \ packagename \ youraidl.java
fonte
Eu sei que parece tão fácil, mas copio e colo do google sample all folder
https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main
e depois eu limpo e reconstruo o projeto e ele encontrou uma referência.
fonte
Eu tentei todas as soluções, mas o problema era que o Android Studio havia compilado, por qualquer motivo aparente, em um tipo de compilação diferente do módulo que contém os pacotes AIDL do que o especificado pelas configurações. Da depuração à liberação , para que os outros módulos não pudessem ver o pacote do AIDL. Mudar de depuração para lançamento e voltar, resolveu meu problema.
fonte
reiniciar o Android Studio funcionou para mim
uma segunda coisa boba que me levou um tempo. Larguei o código no Android Studio para permitir que ele criasse o arquivo, mas ele criou um .java (como esperado) em vez de um .aidl Jiji, estúpido da minha parte
fonte