현재 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/
.
답변
꽤 많은 사람들을 돕는 것처럼 보였으므로 이것을 대답으로 추가하십시오.
- ‘src / main /’아래에 ‘aidl’이라는 새 디렉토리를 작성하십시오 . ‘ src / main / aidl ‘ 과 같아야 합니다.
- 새 패키지 이름 ‘ com.android.vending.billing ‘을 ‘ src / main / aidl ‘ 디렉토리에 추가하십시오.
- SDK 위치를 찾아 “sdk \ extras \ google \ play_billing”으로 이동하십시오. SDK의 기본 위치는 “C : \ Program Files (x86) \ Android \ android-sdk”입니다. 사용자 지정 변경 한 경우 SDK 관리자를 통해 위치를 파악해야합니다.
- ‘IInAppBillingService.aidl’ 을 위에서 만든 패키지에 복사하십시오 . 결국 아래 이미지와 비슷하게 보입니다.
- 프로젝트를 다시 빌드 하면 좋을 것입니다.
참고 : 참조가 작동하지 않는 경우 필요한 가져 오기를 포함하십시오
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
- 이제
Build
android 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 개발자에게는 분명 할 수 있지만 첫 프로젝트를 배우려는 초보자는 명시 적으로 지적해야 할 수도 있습니다.
답변
우리는 추가해야합니다
-
src / main / aidl / packagename 폴더를 생성하고이 아래에 aidl 파일을 배치하십시오.
-
보조 파일에서-패키지 이름을 언급하십시오. 패키지 패키지 이름
이제 프로젝트를 정리하고 프로젝트를 다시 빌드하십시오. app \ build \ generated \ source \ aidl \ debug \ packagename \ youraidl.java에서 생성 된 보조 도구에 해당하는 Java 파일을 사용할 수 있습니다.