edo1z blog

プログラミングなどに関するブログです

Ubuntu18.04でQuasar+Cordova+Androidを動かす

$ quasar dev -m cordova -T android
...
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio
...

Android StudioでGradleが動いてるから、path設定したらよさそう。

$ find / -name "gradle" -type f 2>/dev/null
/snap/android-studio/71/android-studio/gradle/gradle-4.10.1/bin/gradle
/home/edo/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/bin/gradle
/usr/local/android-studio-bk/gradle/gradle-4.10.1/bin/gradle

.bashrcに下記を設定

export ANDROID_HOME="$HOME/Android/Sdk"
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export GRADLE_HOME=/usr/local/android-studio-bk/gradle/gradle-4.10.1
export PATH=$PATH:$GRADLE_HOME/bin
$ source ~/.bashrc
$ quasar dev -m cordova -T android
...
/usr/local/android-studio-bk/gradle/gradle-4.10.1/bin/gradle: Command failed with exit code EACCES
...

gradleコマンドが失敗すると言われる。

$ la /usr/local/android-studio-bk/gradle/gradle-4.10.1/bin
...
-rw-r--r-- 1 edo edo 5289  9月 12  2018 gradle
-rw-r--r-- 1 edo edo 2253  9月 12  2018 gradle.bat
...
$ chmod 755 /usr/local/android-studio-bk/gradle/gradle-4.10.1/bin/gradle
$ quasar dev -m cordova -T android

f:id:edo1z:20190314213341p:plain

...
Warning: License for package Android SDK Platform 27 not accepted.

github.com

上記を参考に、Oreo 27をダウンロードしております。

$ quasar dev -m cordova -T android
...
Couldn't statvfs() path: No such file or directory
emulator: Requested console port 5584: Inferring adb port 5585.
ERROR: resizing partition e2fsck failed with exit code 8
...

stackoverflow.com

ここに書いてあるとおり設定変更してみた。まだエラー出る。

emulator: Requested console port 5584: Inferring adb port 5585.
emulator: WARNING: userdata partition is resized from 1 M to 800 M

ERROR: resizing partition e2fsck failed with exit code 8
WARNING: change of renderer detected.

woshidan.hatenablog.com

~/.android/avd/Galaxy_Nexus_API_28.avdを Galaxy_Nexus_API_27.avdにしたらエラーきえた。起動中に名前変えたりして、設定ファイルが更新出来てなかった的なものかなと思ったのであります。

まだまだエラーは続きます。

No target specified and no devices found, deploying to emulator
No emulator specified, defaulting to Galaxy_Nexus_API_27
Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

まず試してみたいのは、android_homeとandoroid_sdk_root同じ説。 結果、

PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/home/edo/Android/Sdk]!

といわれたのですが、結局この設定のままでよく、AVD削除からの再作成したらできた。

最終的な.bashrcの設定

export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export GRADLE_HOME=/usr/local/android-studio-bk/gradle/gradle-4.10.1
export PATH=$PATH:$GRADLE_HOME/bin

Android実機で動かす

こちらの記事のとおりにやるとできました。

Ubuntu 16.04でAndroid実機を接続mistymagich.wordpress.com

これを使います。

github.com

[メモ]

$ git clone https://github.com/M0Rf30/android-udev-rules.git
$ cd android-udev-rules
$ sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo groupadd adbusers
$ sudo usermod -a -G adbusers $(whoami)
$ sudo udevadm control --reload-rules
$ sudo service udev restart
$ adb kill-server
$ adb devices