363


## RxAndroidをローカルビルドできません

RxAndroidに手を入れてみようと思い

<https://github.com/ReactiveX/RxAndroid>

上記をローカルでgit cloneし、Android
Studioで開くと数ファイルで下記のように`com.google.auto.value.AutoValue`が見つからないという現象が発生しました。

![AutoValueが認識されない](https://i.stack.imgur.com/UpIX6.png)

これに関しては、build.gradleの

[code]

    compileOnly "com.google.auto.value:auto-value:1.0-rc1"
    
[/code]

を

[code]

    compile "com.google.auto.value:auto-value:1.0-rc1"
    
[/code]

に変更する事で解消したのですが、今度は `AutoValue_OnClickEvent`が見つからないという問題が発生しています。

![AutoValue_OnClickEventが見つからない](https://i.stack.imgur.com/fGBtM.png)

`@AutoValue` を認識して自動生成されることを期待して数回ビルドやクリーンをしてみましたが状況変わらずです。

正常にビルドが通る方法をご教授いただけないでしょうか？  
よろしくお願い致します。


CC BY-SA 3.0
2014-12-04T02:45:24.713
336
2014-12-06T07:11:41.840
159
question
android reactive-programming
RxAndroidをローカルビルドできません


clone してきたものを以下のようにコマンドラインからビルドしたらビルド自体は問題なく出来ました。

[code]

    ./gradlew build
    
[/code]

IDE 上でのビルドも通らないと不便ですが、とりあえず。

公式のドキュメントでは、eclipse 使えとなってますね...

<https://github.com/ReactiveX/RxJava/wiki/How-to-Contribute>


CC BY-SA 3.0
2014-12-05T05:33:43.950
363
2014-12-05T07:25:02.550
2014-12-05T07:25:02.550
319
319
336
answer


参考までにさっき Cloneしたプロジェクトを、今日ダウンロードしたAndroid Studioの
Importで開いてみましたが、ビルドは成功しているようでした。

Windows 8.1, Android Studio 0.8.14。  
途中SDK Platform API 20のインストールを要求されましたがそれ以外は特に気になるところもありませんでした。

`RxAndroid\rxandroid\build`配下や`RxAndroid\rxandroid-
framework\build`配下もclassファイルなどが生成されています。

![ImportProject](https://i.stack.imgur.com/MSbiA.jpg)

すでにプロジェクトが開かれている場合はFileメニューからImportを選んでみてください。

![Rubuild Project](https://i.stack.imgur.com/PncED.jpg)


CC BY-SA 3.0
2014-12-06T02:32:15.747
390
2014-12-06T02:32:15.747
728
336
answer


`compileOnly`
のまま、エラー表示を無視してそのままビルドすると通ると思います。クラスが見つからないというエラーは、本当にビルドエラーが起きたのではなく、Android
Studioが親切で表示している警告のようなものです。

### 何故こういう状態になっているか:

AutoValueは、アノテーションを利用してコンパイル時にクラスを生成するタイプのライブラリです。最終的に利用したいのは生成されたクラスの方で、AutoValueライブラリ自体は生成が終わったらお役御免になります。

build.gradleで `compileOnly`
という書き方をしているのはそのためです。RxAndroidを使う側としてはAutoValueライブラリは必要ないので、標準の `compile`
グループとは別の、自前の依存グループ
(`compileOnly`)を使うことで、RxAndroidの依存先にAutoValueライブラリが含まれないようにしています。

ところが、副作用として、Android
Studio側では自前の依存グループの扱い方がわからず、AutoValueがどういうクラスを最終的に生成してくれるかも把握できないので、そんなクラスは存在しないよという警告を出してしまうことになります。

この問題は、[apt](https://bitbucket.org/hvisser/android-
apt)プラグインが使えるように[プロジェクトの構成を変えてから解消する予定](https://github.com/ReactiveX/RxAndroid/pull/87#discussion_r20920391)のようです。

確認環境:

  * Mac OS X
  * Android Studio: 0.8.14
  * RxAndroid: f5edaf1


CC BY-SA 3.0
2014-12-06T07:11:41.840
397
2014-12-06T07:11:41.840
30
336
answer