LoginSignup
0
0

More than 5 years have passed since last update.

Android Studioとエミュレータで発生した事件まとめ

Last updated at Posted at 2019-02-20

ほんまに聞いてくださいよ!
Flutterでアプリ開発して、さて動かそうとなったときにね、アプリが立ち上がらなかったんですわ。
そんな時に、Android界隈で有名な中田大先生 が立ち上がって下さり、サポートいただきました。
本当にありがとうございました!

発生していた事件
1. SocketException
2. Caused by: java.lang.ClassNotFoundException
3. AndroidStudioでemulatorのログが出力されない問題を解決する(←未解決)

SocketException

ほんま聞いてくださいよ!
Flutterで通信系のアプリを開発して、iOSでは表示確認できて、Androidで確認できなかったわけです。
で、確認してみるとそもそもエミュレータでgoogle chromeを使ってサイトの閲覧なんかもできなくなっていたわけです。
調査したところ、こんな事例が掲載されていました。
Mac OS High Sierra 10.13.2 - Android Emulator has no internet connection

この中で、

./emulator -avd YOUR_EMULATOR_NAME -dns-server 8.8.8.8,8.8.4.4

これじゃない?と思い、実際に試してみることに。。。
が、そもそもこのemulatorってどこにあるんや?ってなるわけですよ。
場所は大抵の人はここかと思います。

/Users/<username>/Library/Android/sdk/emulator

なので、ここでまずはavdのリストを出力して、その中のemulator名をYOUR_EMULATOR_NAMEから置き換えします。
以下は実際に使用したコマンドです。

# emulatorの場所に移動
cd /Users/takehiro/Library/Android/sdk/emulator

# emulator一覧を表示
./emulator -list-avds

# emulatorのdns serverを変更
./emulator -avd Pixel_2_API_28_2 -dns-server 8.8.8.8,8.8.4.4

これで無事通信ができるようになりました。

Caused by: java.lang.ClassNotFoundException

これはかなり注意が必要な案件です。
アプリを作った時に、idが自動的につくかと思います。
僕、このidがおかしな形で生成されていたので、以下のファイルで該当箇所(com.example.flutt.flutt)を(com.example.flutt)に修正したわけです。

- android/app/src/main/AndroidManifest.xml
- android/app/build.gradle

しかし、android/app/src/main/kotlin/com/example/flutt/flutt/MainActivity.ktとその中の情報がおかしかったわけです。
まず、idが変わった時点で、
android/app/src/main/kotlin/com/example/flutt/flutt/MainActivity.kt

android/app/src/main/kotlin/com/example/flutt/MainActivity.kt
にならないとおかしい。
ディレクトリ構造もcom.example.fluttと合わせる必要があります。

次に、このMainActivity.ktの中のidがcom.example.flutt.fluttだったので、com.example.fluttに修正。
このあと、flutter cleanをしてから再度flutter runしたところ無事表示されました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0