いったい何が問題なのかと言えばGoogle playのライセンスチェックがorg.apache.httpに依存している状態なのにもかかわらず、SDK 23からorg.apache.httpがライブラリから外されるという状態になりました。
そのために、gradleのcom.android.applicationプラグインもcom.android.tools.build:gradle:1.3.0で更新された様でuseLibrary 'org.apache.http.legacy'という指定を行う必要があります。
さて、NDKでネイティブコード化してみようとしたところ、どうあがいてもこのuseLibraryという拡張が行われていないようで、最新と思われるcom.android.tools.build:gradle-experimental:0.3.0-alpha5でもそれらしい反応が得られませんでした。
そもそもgradleはAndroidStudioが自動で処理してくれるおかげでコンパイルまでできているだけで、その中身が実際にどうやって動いているかというのもさっぱりわかりません。
ただ、なんとなくここを変えるとこうなるんだ程度にしか理解していません。
そんな情弱な状態なのですが、このような状況下で実際にアプリを作っている人たちはどのようにしてソース管理を行ってどのように開発しているのかものすごく興味があります。
結構悩んだ挙句に打開策が見えてきているのはNDKは別に作ってsoファイルだけ持ってきてあげる方法ぐらいしかありません。
もしくはソースだけAndroid Studio配下で作ってsoファイルはコマンドラインで別建てて作成する方法。
あとバッサリとAndroidStudioは捨ててしまう方法(笑)
元々unix系のコンパイルがものすごくマニアックになっていていまだに好きになれなく、いまだに違和感しか感じないので、おそらく私はこういうのに向いていないんだと思います。
現状のAndroid StudioでできそうなキーワードとしてModuleとかあるので試しにNew Moduleしてみましたが、よくわからん状態になったので却下です(笑)
さて…com.android.model.applicationはあきらめて別のプロジェクトでなんのしがらみもない状態でNDKで遊んでみましょうかね…。
へんな外的要因が多すぎて本題に中々入れないのは面倒ですね。
一応最新っぽい情報が見え隠れしていたのでメモメモ
distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-all.zip
classpath 'com.android.tools.build:gradle-experimental:0.3.0-alpha5'
0.2.1も存在してるっぽいのでそっちの方が最新なのかもしれない。よくわかりません。
Android Studio, gradle and NDK integration
Gradle User Guide
第5回 Android StudioとGradle[前編]
0 件のコメント:
コメントを投稿