はじめに
※本ドキュメントは(おそらくは)不具合が直るまでの一時的なノウハウとなります。
- 6/11にAndroid11のbeta1がリリースされましたが、同時にAndroid Studio 4.1beta1と4.2canary1がリリースされました。
- Android Studio4.1 Canary10以降では(少なくとも私の環境では)テンプレートから新規に生成したプロジェクトのアプリがそのままではRunできない、という状況があります。
- 試行錯誤の結果、とりあえずRunする方法が見出せたので共有します。
9/5追記
- AS4.2 Canary8でもこの不具合は修正済みの様です。
- ということで、もしJetpack Composeを試すなら、Canary8以降が良いでしょう。(9/5現在最新はCanary9)
- ということで、本記事は無用のものとなりました。
8/11追記
- AS4.1RC1にて不具合が発生しなくなった模様です。(動作確認済み)
- https://androidstudio.googleblog.com/2020/08/android-studio-41-rc-1-available.html
- AS4.2でも最新のCanaryでは同じissueへの対応が入っているはずなので若干解せないところがあるものの・・・
7/24追記
- AS4.1 beta5、4.2 canary5までリリースごとにチェックしていていましたが、改善の気配はなし。
- 元々チェックしていたissueはfixedで止まってしまったような気がしますが、同じ様なissueが別にありました。
- https://issuetracker.google.com/issues/160192216#comment39
- 上記のコメントを見る限り、次のリリースで改善される、かもしれません。
6/20追記
- 6/18に4.2のCanary2がリリースされましたが、事象は改善せず。
- ※issueの方にも同じことを書いている人がいました。
6/13追記
- どうやら次のバージョンで修正されそうです。
- https://issuetracker.google.com/issues/157676015#comment10
(とりあえずの)結論
- とりあえずクリーンビルド
- とりあえず再起動
- とりあえず修正を待ったほうが良さげ
再現環境・手順
- Mac版Android Studio 4.1(Canary10, Beta1)、4.2(Canary1)
- エミュレータは適当だが、29,30,R(Preview)いずれでも発生。
- プライベート、仕事用Macいずれでも発生したので、途中で何かやらかした、というわけではなさそう。
- 手順
- ASを起動し、とりあえずなんでもいいので、テンプレートを選んでプロジェクトを作成
- とりあえずRunボタンをクリックしてエミュレータで動かそうとする。→ここでapk生成に失敗★1
- その後、なんやかんやでapkができたので、改めてRunボタンをクリックして動かそうとする→インストールに失敗★2して起動できない
★1について
AS上(Runタブ)ではこんなログが出力されていました。
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK path is not specified for module "My_Application.app"
- また、確かに、
app/build/outputs
などのディレクトリは生成されませんでした。 - 起動時のビルドは成功しているのにな・・・ということで仕方ないのでメニューから
Build > Rebuild
します。
→app/build/outputs/apk
が生成、
★2について
さて、これで万々歳で早速Run、と行きたいところですが、今度は以下のエラーで起動ができません。
06/12 22:03:12: Launching 'My_Application.app' on Pixel 3 API 29.
Installation did not succeed.
The application could not be installed.
List of apks:
[0] '/Users/foobar/workspace/myAndroidSamples/MyApplication12/app/build/intermediates/javac/debug/classes/My_Application.app.apk'
Installation failed due to: 'Invalid File: /Users/foobar/workspace/myAndroidSamples/MyApplication12/app/build/intermediates/javac/debug/classes/My_Application.app.apk'
- apkのパスが明らかにおかしいので、インストールできないのは当然かな、と思いますが、そんなわけでRunボタンからは起動できない状態になっていました。
- 一応、先ほどのapkを
adb install
すればエミュレータで動作はしますが、まあ面倒。 - ということで対処。
- → 問題があれば再起動。 よく言われることです。ということで、プロジェクトを開きなおします。そして、Run。
06/12 22:15:43: Launching 'My_Application.app' on Pixel 3 API 29.
Install successfully finished in 1 s 687 ms.
$ adb shell am start -n "com.example.etctaro.myapplication/com.example.etctaro.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 20505 on device 'emulator-5554'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
→うまい具合にRunボタンから実行できました。これでなんとか、
さらに面倒なことも
ここまででとりあえずインストール、Runはできるようになりましたが、実はRunボタンを押した際にはapkが更新されておらず、再度Rebuildする必要がありました。
つまり、変更加えるたびにRebuild、となります。
これは辛い。
素直に、対処を待った方が早いかもしれません。
その他
- 既存のプロジェクト(プロジェクトの設定?)を使う場合は特に問題なし。
- Android Studio 4.1のCanary10にてリソース系のファイルについて、構成変更が入り、MaterialUIのドキュメントに沿った構成になりましたが、
おそらくはそのタイミングで思わぬ変更が入ったものと予想しています。
参考
どうやら、それらしいissueが上がってる様でした。