태그 보관물: android-gradle-plugin

android-gradle-plugin

인앱 결제 예제에서 Android Studio에 보조 파일을 추가하는 방법 package IInAppBillingService does not

현재 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 IInAppBillingService 인터페이스는 com \ xxxxxxxx \ billing \ IInAppBillingService 파일에 선언되어야합니다. .aidl.

이 메시지는 위에 링크 된 Google 버그 페이지의 게시물과 모순됩니다.

이 보조 파일을 작동시키는 데 성공한 사람이 있습니까?

여기에 이미지 설명을 입력하십시오

정보를 제공하기 위해 내가 따라 간 일부 링크 :



답변

오류 메시지에서 알 수 있듯이 IInAppBillingService.aidl패키지 (com.android.vending.billing)에 의해 지시 된 올바른 디렉토리에 넣어야 합니다.

src/main/aidl/이미 있는 폴더 내에서 .aidl파일을에 넣으십시오 com/android/vending/billing/.


답변

꽤 많은 사람들을 돕는 것처럼 보였으므로 이것을 대답으로 추가하십시오.

  1. ‘src / main /’아래에 ‘aidl’이라는 새 디렉토리를 작성하십시오 . ‘ src / main / aidl과 같아야 합니다.
  2. 새 패키지 이름 ‘ com.android.vending.billing ‘을 ‘ src / main / aidl ‘ 디렉토리에 추가하십시오.
  3. SDK 위치를 찾아 “sdk \ extras \ google \ play_billing”으로 이동하십시오. SDK의 기본 위치는 “C : \ Program Files (x86) \ Android \ android-sdk”입니다. 사용자 지정 변경 한 경우 SDK 관리자를 통해 위치를 파악해야합니다.
  4. ‘IInAppBillingService.aidl’ 을 위에서 만든 패키지에 복사하십시오 . 결국 아래 이미지와 비슷하게 보입니다.

결과 스크린 샷

  1. 프로젝트를 다시 빌드 하면 좋을 것입니다.

참고 : 참조가 작동하지 않는 경우 필요한 가져 오기를 포함하십시오

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

  • 이제 InApp 청구 코딩으로 진행하고 InApp 관련 서비스를 정의하는 동안 오류가 발생합니다 can not resolve symbol IInAppBillingXXXXXX
  • 이제 Buildandroid studio 메뉴로 이동하여를 클릭하십시오 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 결제 문서에 언급되지 않았거나 찾은 코드 예제에 포함되지 않았습니다. 숙련 된 Java 개발자에게는 분명 할 수 있지만 첫 프로젝트를 배우려는 초보자는 명시 적으로 지적해야 할 수도 있습니다.


답변

우리는 추가해야합니다

  1. src / main / aidl / packagename 폴더를 생성하고이 아래에 aidl 파일을 배치하십시오.

  2. 보조 파일에서-패키지 이름을 언급하십시오. 패키지 패키지 이름

이제 프로젝트를 정리하고 프로젝트를 다시 빌드하십시오. app \ build \ generated \ source \ aidl \ debug \ packagename \ youraidl.java에서 생성 된 보조 도구에 해당하는 Java 파일을 사용할 수 있습니다.