139

現在、Eclipse アプリを Android Studio に移行しています。このアプリはアプリ内課金を使用していました。

私の主な問題は、プロジェクトと aidl ファイルをコンパイルすることです (皆さんはこのファイルを使用していると思います) 。

次のエラー メッセージが表示されます。

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 バグ ページの投稿と明らかに矛盾しています。

このエイドルファイルを機能させることに成功し、私を助けることができる人はいますか?

ここに画像の説明を入力

お知らせするために、私がたどったいくつかのリンク:

4

12 に答える 12

163

IInAppBillingService.aidlエラー メッセージが示すように、パッケージ (com.android.vending.billing) によって指定された正しいディレクトリに配置する必要があります。

src/main/aidl/既にあるフォルダー内で、.aidlファイルをに配置しますcom/android/vending/billing/

于 2013-07-24T14:11:13.313 に答える
11
  • Create new directory under src/main called aidl
  • Right click on directory aidl, select new->add package
  • Enter Name of the package com.android.vending.billing

  • Copy IInAppBillingService.aidl from the directory Android/Sdk/extras/google/play_billing to the directory App_name/app/src/main/aidl/com/android/vending/billing

  • Now go ahead with InApp billing coding and while defining InApp related services you will get an error can not resolve symbol IInAppBillingXXXXXX
  • Now goto to Build from android studio menu , click on Rebuild Project. This will generate IInAppBillingService.java file inside App_Name/app/build/generated/source/aidl/debug/com/android/vending/billing. This will solve the issue.
于 2015-01-28T14:51:08.070 に答える
10

ここに示すような新しいフォルダーを作成するまで、ここにある残りの投稿は機能しませんでした。

ここに画像の説明を入力

于 2016-08-24T17:31:36.277 に答える
8

このコードを build.gradle に追加します

android {
    sourceSets {
        main {
            aidl.srcDirs = ['src']
        }
    }
}

aidl クラスの再構築とインポート

于 2016-06-12T14:57:20.367 に答える
2

上記の回答はファイルの場所に集中していますが、既に正しく設定されているようです。私は Android Studio で同じ問題を経験しましたが、リストされている回答のいずれも解決できず、1 時間頭を悩ませました。最終的に、明らかなインポートが不足していることに気付きました。

 import com.android.vending.billing.IInAppBillingService;

追加すると、このエラーメッセージが解決しました。

このインポートは、どの Google Billing ドキュメントにも記載されておらず、私が見つけたコード例にも含まれていません。経験豊富な Java 開発者には明らかかもしれませんが、最初のプロジェクトを学習しようとしている初心者には、明示的に指摘する必要があるかもしれません。

于 2015-03-19T15:10:42.130 に答える
1

追加する必要があります

  1. フォルダーを作成 - src/main/aidl/packagename し、この下に aidl ファイルを配置します。

  2. aidl ファイルに、パッケージ名を記載します。パッケージ パッケージ名

ここでプロジェクトをクリーンアップし、プロジェクトを再ビルドします - app\build\generated\source\aidl\debug\packagename\youraidl.java で生成された aidl に対応する Java ファイルを作成できます。

于 2016-06-03T13:03:13.267 に答える
0

私はすべての解決策を試しましたが、問題は、設定で指定されたものとは異なるビルドタイプの AIDL パッケージを含むモジュールで、何らかの理由で Android Studio がコンパイルされたことです。debug から releaseまで、他のモジュールは AIDL pkg を認識できませんでした。デバッグからリリースに切り替えて元に戻すと、問題が解決しました。

于 2016-02-08T16:12:10.180 に答える
0

Android Studioを再起動するとうまくいきました

しばらく時間がかかった2番目のばかげたこと。彼がファイルを作成できるように Android Studio にコードをドロップしましたが、彼は .aidl Jiji の代わりに (予想どおり) .java を作成しました。

于 2016-08-16T06:41:44.797 に答える