カテゴリーアーカイブ OS

asaba 著者:asaba

Failed to fetch plugin:ERRの赤文字から逃れた話

前回【androidJava】プラグイン導入できない!?Failed to fetch pluginとは・・・

の記事で、ホラー映画さながらの大量の赤文字エラーが解決できないでいましたが、あっさりと解決することができました。

やり方も非常に簡単で、まずプラットフォームを全て消した後に、その後プラグインも全部rmで削除してしまいます。


cordova prugin rm


cordova platfoms rm

でその後に入れたいプラグインを入力します。

 

cordova prugin add 入れたいプラグイン

でも前回はiosとandroidも消したはず。ただ.ideaとbrowserを消していなかったのですが、全部削除しないとダメだったのか・・・?解決はしましたが腑に落ちない結末でした。
あと一応ソースツリーの作業ツリーのファイルも全て消しておいたほうがいいです。configとかpackageが先祖返りしてpluginなんて知らないってとぼけるかもしれないので・・・


とりあえず今後もしこのようなエラーを見かけたらプラットフォームとプラグインを疑ってみてくださいね。それでは!


 

 

  • この記事いいね! (0)
asaba 著者:asaba

【androidJava】続・firebaseを使ったアプリをビルドしたらcould not find any versionで怒られた話

今日は、おとといandroid studioに怒られたエラーcould not find any versionの別の対策について書きます。(トップが象なのはgradle関係なので)

前回、上のエラーに遭遇した時は、「以下のようにbuild.gradle(android側)で、リポジトリを追加するコードを書き加えてあげましょう。」という対策を上げましたが

 maven { url "https://maven.google.com" } 

それでもまだエラーがでてくるよという方のためにもう一つの対策法も載せておきます。

まず、前回と同じandroid側のgradleファイルを開いて、dependencies内のclasspathに着目します。そこに書いてあるbuild.gradle〇.〇.〇という数字がありますが、これはgradleのバージョンを意味しています。つまり、何もいじらない段階でエラーが起きているということは、今使っているgradleのバージョンが古い若しくは存在しないバージョンを使っているために引き起こしていると考えられます。

さて、正常にする方法ですがbuild.gradle〇.〇.〇の上にカーソルを合わせると豆電球アイコンがでます。スクショを取り忘れてしまったので詳細を載せることはできませんが、豆電球の説明に従って適切なバージョンにアップグレードしてください。ちなみにCordovaLib側のバージョンはandroid側と合わせなくてもいいみたいです。

gradleのエラーは一回解決しても次々新しいエラーが出て訳の分からないことになるのであまり触りたくはないのですが、今回のようにバージョンが古かったりプラグインの設定を見直したいという方は慎重にいじってください。一回設定を間違えるとプラットフォームやnode.moduleを一から入れなおしたりと時やたら間を使ってしまうので・・・(汗)

  • この記事いいね! (0)
村上 著者:村上

【Cordova】QRコードリーダーを実装するプラグイン「phonegap-plugin-barcodescanner」

今回はCordovaで開発しているアプリに、QRコードリーダーの機能を実装する方法について。
コードがかなり分かりやすかったのでおすすめのプラグインです。
使用したプラグインは「phonegap-plugin-barcodescanner」。
phonegap という名前が付いていますが、Cordovaでも問題なく使えます。

GitHubはこちらから。

GitHub – phonegap/phonegap-plugin-barcodescanner: cross-platform BarcodeScanner for Cordova / PhoneGap
https://github.com/phonegap/phonegap-plugin-barcodescanner

 

早速実装方法ですが、まず下記のコマンドでプラグインを追加します。

cordova plugin add phonegap-plugin-barcodescanner

プラグインの追加が終ったら、config.xml を確認します。
もし、下記の1行が追加されていなかったら追加してください。

<preference name="android-build-tool" value="gradle" />

また、iOSの場合は、info.plist に 「Privacy – Camera Usage Description」の項目を追加しないと、アプリからカメラが起動できないので、こちらも追加します。
設定はこのくらいです。

あとは、下記のコードを記述するだけです。

cordova.plugins.barcodeScanner.scan(
    function (result) {
        // QRコードの読み込み成功
        // 成功時の処理
        // Result: result.text
        // Format: result.format
        // Cancelled: result.cancelled
    }, 
    function (error) {
        // 読み込み失敗
        // 失敗時の処理
    }
);

上記のコードが実行されると、自動的にカメラを使用するかを尋ねるダイアログが表示され、許可を選択すると、画面内に四角形が表示されているQRコードリーダーが起動します。
で、カメラを適当に作成したQRコードにかざしたところ、無事コード内の情報を取得できました。

ちなみに、試しに作ったQRコードは、本記事のアイキャッチ画像でも使用しています。
なお、取得できるのはこのブログのURL https://cpoint-lab.co.jp/です。
このURLは、上記のコードでは、result.text で取得できます。
適当なコードが見つからない場合は、是非ご利用ください。

 

以上、CordovaアプリでQRコードリーダー機能を実装する方法でした。
最初はカメラを扱うということで、難しいのでは…と思っていましたが、実装が楽なプラグインのおかげでかなり簡単でした!
もし似たようなことを行いたいとお考えでしたら、是非ご参考にしてください。

  • この記事いいね! (0)
asaba 著者:asaba

【androidJava】プラグイン導入できない!?Failed to fetch pluginとは・・・

タイトルの通り今回は未解決の議題になります。

cordovaアプリ開発中にcordovaでバッジを追加するプラグインが必要になったので、インストールしようと思ったらエラー出てはまっております。

gitの説明通りにプラグインを入れようとしたら以下のように赤文字がずらりと出ました。

Failed to fetch pluginと出ているので、プラットフォームに入っていないだけかと思いcordova platforms rm androidでプラットフォームを入れなおしたりnpmのバージョンのアップグレードを試みたのですが、解決されずに今の状況に置かれています。

スタックオーバーフローにはプラットフォームとプラグインを全部アンインストールして再びインストールした後にプラグイン導入すればできると書いてあったのですが結局消えませんでした。

会社の先輩のcordovaだと普通に動作するのに何故・・・?gradleも一応最新にしてあるのに。

今は動きませんが、近いうちにすぐに解決して備忘録に載せます。

 

 

  • この記事いいね! (0)
takahashi 著者:takahashi

Xperiaのカメラの動作が”クソ重い!!!”と感じたときの対処法

XperiaはAndroid端末の中でも全体的に1位、2位を争うほどの高性能なものが多い機種です。
Oneソニーをうたっているだけあって、カメラもかなり画素数の高い機種が多く、綺麗に写真を撮ることができます。

ところが、このカメラ、使っているとどんどん重くなっていき、自分の持っているXperiaでは最終的に起動まで10秒弱かかる状態になってしまいました。
しかも、起動後、シャッターを押した後も再び写真が撮影できるようになるまで数秒間固まってしまいます。

あまりの遅さに、同じくカメラに定評のあるiPhoneに浮気しかけていたところ、ネット上でこちらの情報を発見。

Xperiaの発熱・動作が重い等を万能解決?Photo Analyzer Serviceを無効化する方法 – すまおじ.com

記事によると、”Photo Analyzer Service” なるシステムアプリが裏で頻繁に動作しており、これが原因で端末の動作全体が重くなってしまうと事。
幸いにも自分のXperiaに入っているAndroid 6にはプリインストールアプリも無効化できる機能があるため、システムアプリであってもこの”無効化”で対抗することができます。

ということで早速試してみましょう。

まず、設定から”アプリ”を開きます。

通常だとシステムアプリは隠されてしまっています。
表示させるために、右上のメニューアイコンから”システムを表示”を選択。

表示されたアプリ一覧から”Photo Analyzer”を探し出します。

見つけだしたら”無効にする”をタップ。

ボタンが”有効にする”に変わったら設定完了です。

なんとこの設定をした後、端末の動作が劇的に軽くなり、以前では数時間Androidを起動しっぱなしにしておくとカメラが重くなってしまっていましたが、今では丸1日を過ぎても買った直後と同様にすっとカメラが起動するようになりました。

ただ、Photo Analyzerは写真の顔認識を行うなどの機能を持っているサービスとのことで、Photo Analyzerの機能を必要とするXperiaの機能やアプリを使用する方は無効化してしまうと、問題が出るかもしれません。
しばらく様子を見つつ、普段の使い方で不具合が出ないかを確認するようにしてください。

Xperiaの折角の高性能カメラが、動作が重すぎて最近気軽に起動できなくなってしまった…という方は、是非一度試してみてはいかがでしょうか。

  • この記事いいね! (0)
asaba 著者:asaba

【androidJava】firebaseを使ったアプリをビルドしたらcould not find any versionで怒られた話

cordovaを使ったアプリをAndroidStudioでビルドしたらあるエラーにはまったので備忘録として残します。

早速ですが、下にあるのがGradle内で吐いたエラーです。ログを見るとエラー1って書いてあるのになにやらごちゃごちゃしていてdependencyのクラスパスが使えないとか色々書いてあってどれから見たらいいか分からないくらいダラダラ出てきました。

スタックオーバーフローによればfirebaseのバージョンがどこを探しても見つからない、合わないよというエラーのようです。

そういう時はbuild.gradle(android側)で、リポジトリを追加するコードを書き加えてあげましょう。

repositoriesスコープ内のjcenter()の上あたりで大丈夫です。

maven {
url "https://maven.google.com"
}

原因ははっきり分からなかったのですが、さっき追記したリポジトリがなかったのでfirebase自体が無いとみなされていたということでしょうか・・・

ざっくりとした解説ですが自分はこれで無事ビルドできました。同じような記事を探したのですが、国内での事例が少なくまともなサイトがなかったのでしぶしぶスタックオーバーフローで探しました。gitもそうですが英語ができると開発だけでなくエラーにも正確に対応できるしで活躍の幅が格段に広がりますよね。筆者も英語はからっきしなのでよく海外のサイトを頑張って読んだりして耐性をつけております。それでは。

P.S.参考にしたページのリンクです!->https://stackoverflow.com/questions/50815960/could-not-find-any-version-that-matches-com-google-firebasefirebase-iid16-0-0

 

 

 

  • この記事いいね! (0)
村上 著者:村上

【Cordova】JavaScript上のConsole.log()をXcodeのデバッグエリアに表示する方法

以前からCorodvaアプリを開発していましたが、最近になって便利なプラグインを発見したのでご紹介。
というか、何故これを開発初期に入れていなかったのか…ちょっと後悔しています。

 

おすすめしたいプラグインは「cordova-plugin-console」です。
タイトルにもあるように、こちらのプラグインを導入すると、JavaScript上で記述した console.log() などの結果を、Xcodeのデバッグエリアに表示させることができます。
なお、参考にさせていただいたサイトはこちらから。

Cordova アプリの console.log() を XCode に出力する cordova-plugin-console – Corredor
http://neos21.hatenablog.com/entry/2017/07/10/080000

そして、GitHubのリンクはこちらから。

GitHub – apache/cordova-plugin-console: Apache Cordova Plugin console
https://github.com/apache/cordova-plugin-console

導入方法は、下記のコマンドを実行するだけ。

cordova plugin add cordova-plugin-console

あとは、devicereadyイベントの後に console.log() を記述すれば、それがデバッグエリアに表示されます!
また、試してはいませんが、Android Studio でも同様に使えるそうです。

 

以上、Console.log() をXcodeのデバッグエリアに表示する方法でした。
プラグインの導入だけなので、かなり簡単に行えます!

今まで alert() をメインで使ってきて、そこまで不便は感じていなかったのですが…やはりできるとかなり楽ですね。
Cordovaアプリの開発者はぜひインストールをご検討ください。

  • この記事いいね! (0)
村上 著者:村上

【Cordova】アプリでiBeaconを扱うための「cordova-plugin-ibeacon」が動作しない【未解決】

今回は、「cordova-plugin-ibeacon」という、CordovaアプリでiBeaconを取り扱うためのプラグインについてです。
Android端末では思い通りに動作したのですが、何故かiOSでは、ビーコンの信号をキャッチできず…。
色々サイトを見て、設定等を変更しているのですが、残念ながら、まだ未解決です。

 

使用したプラグインはこちらから確認できます。

GitHub – petermetz/cordova-plugin-ibeacon: An iBeacon plugin for Phonegap / Cordova 3.x and upwards. Supports both iOS and Android (contributions are welcome)
https://github.com/petermetz/cordova-plugin-ibeacon

で、実際に記述したコードはこちら。

var uuid = '[使用するビーコンのUUIDを指定]';
var identifier = 'ibeacon';
var major = 0;
var minor = 0;
var beaconRegion = null;
// 監視するビーコンの設定
beaconRegion = new cordova.plugins.locationManager.BeaconRegion(identifier, uuid, major, minor);
    
// delegateの作成と設定
var delegate = new cordova.plugins.locationManager.Delegate();
delegate.didStartMonitoringForRegion = function(pluginResult) {
    // ビーコンの観測の開始に成功
};

delegate.didDetermineStateForRegion = function(pluginResult) {
    // 領域への入退場のステータス変化を検知
};

delegate.didEnterRegion = function(pluginResult) {
    // ビーコンをキャッチした時に呼ばれる
    cordova.plugins.notification.local.schedule({
        title: "iBeacon",
        text: "didEnterRegion",
        foreground: true
    });
};

delegate.didRangeBeaconsInRegion = function(pluginResult) {
    // ビーコンを検知している間呼ばれる
};

// delegate の設定
cordova.plugins.locationManager.setDelegate(delegate);

// パーミッションチェック
cordova.plugins.locationManager.requestAlwaysAuthorization();
cordova.plugins.notification.local.requestPermission();
cordova.plugins.backgroundMode.enable();

// 監視の開始
cordova.plugins.locationManager.startMonitoringForRegion(beaconRegion)
    .fail(function(e) { })
    .done();
}

19行目で、ビーコンが発信している信号をキャッチしたら、通知を飛ばす、という処理を行いたかったのですが、これが動作せず…。
もしや、通知の設定が間違っているのか?と思い、別の箇所で動作確認をしたところ、問題なく動作したので、通知の問題ではなさそう。

また、11行目や15行目の関数内でも、試しに通知の処理を記述して見ましたが、こちらでも問題なく通知がされたので、プラグインにも問題はないようです。
ただ、15行目のビーコンの通知領域への入退場ステータス変化を検知した時に実行される関数では、引数 pluginResult.state が「CLRegionStateOutside(通知範囲から退場)」しか取れていないようだったのが気にかかっています。
どうやら範囲内に入った検知が行えていないようで…でも、その対処法がわからず、悩み続けております。

 

GitHubに、おそらく同じことでお悩みの方の投稿があったので見てはいるのですが、それでも解決できず。
ちなみに投稿はこちら。

IOS Plugin not working…・Issue #167・petermetz/cordova-plugin-ibeacon・Github
https://github.com/petermetz/cordova-plugin-ibeacon/issues/167

こちらの投稿では、locationManager のパーミッションのリクエストをしているかや、XCodeでの設定についての確認があり、それらに対応したのですが、それでも動かず…。
…根が深そうな気がしますね。
一度、プラットフォームの削除と再インストールを試してみようかな?

 

なお、サンプルコードはきちんと動作したので、私のコードもしくは設定が間違っているのは間違いなさそう。
原因がわかったら、また改めてご紹介したいと思います!
それまでしばしお待ちを!

  • この記事いいね! (0)
takahashi 著者:takahashi

有線LANはあるけど無線LANがない…! そんな時に役に立つWIndowsで逆テザリング(Hotspot化)する方法

最近はビジネスホテルなどでも無線LANが標準で提供されるところも増えてきました。
しかし一部のホテルや施設などでは未だに有線LANだけの提供だけ、というところがある場合もありますし、どこかの場面で急に無線LANが必要になる場合もあるかもしれません。

特に、スマートフォンなタブレットなどの端末は有線LAN接続が困難な機種が多いので、いざというときに有線LANしか使えない環境だと不安です。

そんな状況下のとき、もし無線・有線LAN搭載のWindows 10 PC一台さえあれば簡単に解決することができます。

通知エリアの無線LANアイコンを押すと、

”モバイルホットスポット”というアイコンがあるのがわかるかるかと思います。
実はこれが今回の目的の機能になります。

モバイルホットスポットって何だろう? – テザリング機能の使い方 – マイナビニュース パソコン

モバイル回線をスマホなどを通じてPCに提供することを”テザリング”と呼ぶのに対し、ホットスポット機能はPCが接続するネットワークをスマホなどのWi-Fi端末へ流す使われ方が多い為、しばしば”逆テザリング”と呼ばれます。(やってることはテザリングとほぼ変わりません。)

実は他のOS(macOS、Linux)でも”逆テザリング”する機能はありますが、Windowsには標準で、他OSにはない仕組みを持っています。
それは1つのWi-Fiアダプタを仮想的に分割し、Wi-FiからWi-Fiへネットワークを中継することができる機能です。

基本的に他OSでは、別のネットワークアダプタのネットワークを”逆テザリング”することしかできません。
つまり、共有する元のネットワークにつながるネットワークアダプタとWi-Fiの電波を端末に発信するネットワークアダプタはハード的に別でないといけません。
一般的にノートPCではWi-Fiアダプタと有線LANポートをひとつづつ備えている構成が多いかと思いますので、この場合は有線LANでつないでいるネットワークをWi-Fiから飛ばす、というような使い方に限られます。

しかしWindowsでは、Wi-Fiアダプタでネットワークにつないだまま、同じWi-Fiアダプタから他の端末に対してWi-Fiのアクセスポイントを提供することができます。
この機能はVirtual Wi-Fiと呼ばれています。

また、Windows 10ではBluetoothを搭載していればBluetoothのPANプロファイルを使って逆テザリングすることもできます。

 

Bluetoothを除く上記の機能は、正式なGUIが実装されたのはWindows 10からですが、機能自体はWindows 7から利用することができます。

Windows 7をお使いで、GUIでホットスポットのON/OFFを行いたいのであれば、

Virtual Router

を使うと実現できます。

いざというときにWi-Fiルーターが必要になった際に役に立ちそうですね。

  • この記事いいね! (0)
asaba 著者:asaba

【android java】アーバンなUIを提供してくれるBootstrap

android版ライブラリbootstrapを試しに使ってみたので、今日はそのダウンロード方法や踏みつけたエラーを備忘録として残します。

アプリを作る時は、どうせならスタイリッシュなUIにしたいですよね。bootstrapは、twitter社生まれのcssフレームワークです。数あるフレームワークの中でも特に多彩なバリエーションのUIを揃えており、多くの企業がアプリやwebサイトを作るのに採用しています。そんなbootstrapは元々webアプリ向けに開発されましたが、androidでも一式用意されているので使ってみました。

導入方法ですが、まずgitからhttps://github.com/Bearded-Hen/Android-BootstrapREADME.md に説明が記載されているのでそれに沿って進めます。build.gradle(Module.app)内のdependenciesの中に下記のコードを加えます。

implementation 'com.beardedhen:androidbootstrap:2.3.2'

2.3.2はbootstrapのバージョンを指しているので、現在のバージョンに合わせて書いてください。余談ですが、自分は上記のコードをproject:〇〇〇というgradleファイルに書いてしまったためandroidstudioに怒られてしまいました。

なので、もう片方のapp:〇〇〇というgradleファイルに書いてください。

よく見るとファイル下に書いてありましたね・・・ここには書くなって・・・はい。

<pre>// NOTE: Do not place your application dependencies here; the belong
// in the individual module build.gradle files</pre>

次に、MainActivityと同じフォルダ内にTestBootstrapというアクティビティを新しく作ります。

package com.example.swift0910.myapplication;


import android.app.Application;

import com.beardedhen.androidbootstrap.TypefaceProvider;

// Applicationを継承
public class TestBootstrap extends Application {
    @Override public void onCreate() {
        super.onCreate();
        TypefaceProvider.registerDefaultIconSets();
    }
}

 

Applicationを継承するクラスのコードを書いたら、次にAndroidManifestに以下のコードを追加します。

android:name=".TestBootstrap"

以上で設定は完了になります。デザインはhttps://akira-watson.com/android/android-bootstrap-library.htmlのnyanさんのが一番しっくりきたので参考にさせていただきました。xmlコードや機能も載っているので、使いこなしたいという方は色々いじってみると本質がわかってくるかもしれません。

ライブラリって記載されているコード全部をコピーしてandroid studio内のローカルフォルダに入れていると思っていたので、まさかこんな簡単にダウンロードできるとは思っていませんでした。

  • この記事いいね! (0)