あきらめて、AndroidでBLEアプリを作り始めよう。
ネットで検索したが、さすがスマホとあって、nRF51822とは比にならないくらいたくさん出てきた。
ここまで出てくると、一から作ろうという気がなくなってきますな。。
あと、iOSに比べると今ひとつらしいことがどの記事からもうかがえる。
みんなそう言っているので、そうなんだろうね。
iOSはやるつもりがないので、使うときになって考えよう。
Android5.0〜でBLEを使う(Central編) - vaguely
こちらの下の方に、Bluetooth Developerにもサンプルコードがあるとのこと。
せっかくなので、そちらを試してみよう。
Bluetooth Smart Developers | Bluetooth Development Portal
フォームに入力すると、ダウンロード先のメールが送られてきた。
今日(2015年10月)ではApplication_Accelerator_v1.0.1.zipだった。
今回はPDFを読まず、Androidを見る。
中はADTでできているので、Android Studioにインポートした。
android-18がないと怒られた。
いまさらインストールしたくないので、変更。
タイピングなどのメモ:Android StudioでAPIレベルを変更する - livedoor Blog(ブログ)
何も考えずに、API23にしておく。Nexus7で使いたくなったら、下げよう。
今度は「Gradle DSL method not found: 'android()'」と出てきた。
Solving the “gradle DSL method not found: android()” issue in Android Studio — Medium
なんかわからんけどbuild.gradleにandroidという関数ができるから、消せばよいよ、と。
確かに、あった。
消すと・・・またandroid-18がないと怒られた。
え-、これがだめなのー。
ではどうしたらよいのか・・・。
さっきはFlavorsタブで設定したので、違うところで試す。
PropertiesのCompile Sdk VersionをAPI23にする・・・またbuild.gradleにandroidができた。
Errorの括弧に書いてある数字は、build.gradleの行数なのだね。
それはともかく、設定を書くと、build.gradleファイルが更新されるようだ。
そして、Androidに関するものはandroidの中に書かれるのだろう。
めんどうなのでAPI18をインストールしたくなるが、時間があるので我慢だ。
もう一度エラーを見ると、リンクしてそうなのがあるではないか。
Open Gradle wrapper fileをクリックすると、ファイルが開かれた。
#Wed Apr 10 15:27:10 PDT 2013distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
こんなの見せられてもねぇ。
AndroidStudioでプロジェクトインポートしたときのsyncエラー - Qiita
こちらは、gradle-wrapper.propertiesが変だったというお話だ。
む、では前回ウィザード経由で作ったときのファイルを見てみよう。
#Mon Oct 19 10:07:13 JST 2015distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
むむ、これか?ということで置き換えた。
が、まだエラーが出る。
出ているメッセージは同じなのだが、さっきはwrapperファイルへのリンクだったが、今度はGradle settingsへのリンクになった。
そのパスにファイルはあるんだけど・・・。
OKすると、Project JDKのnot specifiedだとか。
クリックすると、Project Structureのダイアログが出てきて、Project Settings>Projectが表示された。
たしかに、Project SDKが<No SDK>になってる。
これをAPI23にして、Try Againすると・・・またDSL android()が見つからないになった。
きー!
Import an Android project to Android Studio
build.gradleに、プラグインの設定を追加したらよかった、とのこと。
あ、確かにない。
ウィザードで作ったものは、ファイルの先頭に「apply plugin: 'com.android.application'」だったので、コピー。
おお、エラーが変わった。
今度は、buildToolsVersionが指定されていない、と。
リンクは出ていないが、慣れてきたので、File>Project Structureを選択。
やはり、あった。Propertiesタブだ。一番新しそうな22.0.1を選択。
OKすると・・・また「android-18」・・・。
腹が立ってきたので、プロジェクトのトップとsrcにあるbuild.gradleを、それぞれウィザードで作成したときのbuild.gradleとファイルごと置き換えた。
あれ・・・build.gradleって2つあるの??
もう一度、インポートからやり直そう。
まず、gradle/wrapper/gradle-wrapper.propertiesを編集。
次に、app/build.gradleを編集。
build.gradleはプロジェクトのトップとappの中にあり、android-18うんぬんは appにあるbuild.gradleなのだ。
ウィザードで作ったものとの差分はこんな感じ。
「android-18が無いからSDKをインストールせよ」じゃなくて、こっちのbuild.gradleへのリンクも示してほしかったな・・・。
これだけで、syncが成功した。
やれやれ・・・。
今回得たAndroid Studio対策は、
ウィザードで新規アプリを作り、その設定をまねせよ
でした。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。