LoginSignup
5
4

More than 1 year has passed since last update.

【解決】UpgradeしたらAndroid Studio 2021.2.1(Chipmunk)が起動しない

Last updated at Posted at 2022-05-13

概要

Android Studio 2021.2.1(Chipmunk)がリリースされたので、Android Studio 2021.1.1(Bumblebee)を起動するとUpgradeの案内が表示されて承認するとUpgradeが始まります。

多くの人は、Android StudioをPleiades(https://mergedoc.osdn.jp/ )の日本語化をしていると勝手に思っていますが、今回、ChipmunkにUpgradeするとエラーで起動しなくな ります。(私だけかもしれませんが) ることがあります。

今回は、その復旧(あくまで起動するまで)をする手順です。 と解消方法の説明です。
再インストールしても解消しないので、めげないで読んでください。

【Update2022.05.15】
日本語化するためのPleiades日本語化のバージョンが、本件に関連してます。
なので、古いバージョンを使うことで回避できるようになります。


詳細は、最下端へ記載してます。

前提

  • Windows10
  • Android Studio Bumblebee(2021.1.1)
  • Pleiades日本語化(Ver pleiades-2022.05.05)

症状の整理

まずは、Upgrade後の初回起動をすると、下記のようなダイアログが表示されます。
そして、「OK」を押してもAndroid Studioが起動することはありません。

Error launching Studio

 Could not find main class com/intellij/idea/Main

as001.png

「あ~、また日本語化している状態でAndroid StudioのUpgradeしたときと同じで、再度日本語化を実行しないといけないパターンかな?」
と思っていたのですが、、、、

今回は違ってました。

まず、再度Pleiades日本語化を実行しても起動しない。症状は同じまま。
エラー内容をググると「Android Studioを入れなおせ」と言われるのだが、そこまで重症な気がしない、、、、

解消方法(暫定)

最終的な解消方法は、後日アップデートをしないといけないとは思いますが、今は「日本語を一旦オフにする」ことで解消させます。
(つまり、原因としては日本語化にありそうだ。ということ)

まずは、Pleiades日本語化を起動します。
as003.png

最終行の「Pleiadesの設定が追加されるファイル」のパスを確認して、「studio64.exe.vmoptions」ファイルをエディタで開きます。

 # Custom VM options (Generated by Pleiades Installer)
 # See https://pleiades.io/pages/pleiades_jetbrains_manual.html
 #-Xms256m
 #-Xmx1280m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-Djna.nosys=true
-Djna.boot.library.path=
-Didea.vendor.name=Google
-Dfile.encoding=UTF-8
-XX:+IgnoreUnrecognizedVMOptions
-Xverify:none
-javaagent:C:\Users\XXXX\AppData\Roaming\Google\AndroidStudio2021.2\jp.sourceforge.mergedoc.pleiades\pleiades.jar

as004.png

「studio64.exe.vmoptions」の最終行にある「-javaagent」の行をコメントアウトすると、Pleiades日本語化をオフにできます。
今回は、この行をコメントアウト(行頭に「#」をつけるだけ)して、日本語化をオフにすることで「暫定対処」します。

 # Custom VM options (Generated by Pleiades Installer)
 # See https://pleiades.io/pages/pleiades_jetbrains_manual.html
 #-Xms256m
 #-Xmx1280m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-Djna.nosys=true
-Djna.boot.library.path=
-Didea.vendor.name=Google
-Dfile.encoding=UTF-8
-XX:+IgnoreUnrecognizedVMOptions
-Xverify:none
 #-javaagent:C:\Users\XXXX\AppData\Roaming\Google\AndroidStudio2021.2\jp.sourceforge.mergedoc.pleiades\pleiades.jar

Android Studioを起動します。
無事起動しました。(日本語化はオフなので頑張って英語を読みましょう)
as005.png

【追記2022.05.15】調査完了

この症状になるのは、どうやら全てではないようです

もう1台のPCに入っていたAndroid Studioは、Upgrade後も普通に起動しました。

となると、原因を見つけることが必要になります。
まずは、いろいろ試してみます。

設定ファイルを再度作らせてみる

C:\Users\(ユーザー名)\AppData\Roaming\Google

as006.png

上記の「AndroidStudio2021.2」フォルダが今回のものになるので、これを一旦、リネームしてAndroidStudioを起動します。
そうすると、前バージョンである「AndroidStudio2021.1」の設定を使って再度作成されます。

結果は、同じくエラーになりました。
これは、前バージョンで日本語化の行がすでに存在しているので、再作成をされても日本語化がオンになっているためです。
ということで、行をコメントアウトすると、やはり正常に起動します。

設定を初期化してみる

C:\Users\(ユーザー名)\AppData\Roaming\Google

このフォルダに存在している「AndroidStudioXXXX」を全て、一旦別の場所に移動します。
(新しいフォルダを作成して、その中に入れてもOK)

そうすると、Android Studioがインストール直後の状態で起動します。

この状態で、日本語化してみます・・・・・・同じエラーになりました。
ぐぬぬぬ・・・

Pleiadesのログを見る

C:\Users\(ユーザー名)\AppData\Roaming\Google\AndroidStudio2021.2\jp.sourceforge.mergedoc.pleiades\cache\pleiades.log

日本語化している状態でAndroid Studioを起動すると、上記のLogファイルに起動のログが追記されます。

INFO  08:28:21.052 [ForkJoinPool-1-worker-5] (LauncherTransformer) Pleiades AOP 起動トランスフォーマーを開始します。LauncherIdeaTransformer 0.023 秒
INFO  08:28:21.035 [ForkJoinPool-2-worker-5] (LauncherTransformer) キャッシュが存在しないため、強制的に -clean モードで起動します。
INFO  08:28:21.071 [ForkJoinPool-2-worker-19] (UpdateDetector) ファイル更新最終時刻 (前回): 2022-05-15 07:56:47
INFO  08:28:21.075 [ForkJoinPool-2-worker-19] (UpdateDetector) ファイル更新最終時刻 (今回): 2022-05-15 07:56:47
ERROR 08:28:21.077 [main] (LauncherTransformer) バイトコード変換不可 util.jar/com/intellij/util/io/Murmur3_32Hash jp.sourceforge.mergedoc.javassist.NotFoundException: main(..) is not found in com.intellij.util.io.Murmur3_32Hash jp.sourceforge.mergedoc.javassist.CtClassType.getMethod(CtClassType.java:1275)
jp.sourceforge.mergedoc.javassist.NotFoundException: main(..) is not found in com.intellij.util.io.Murmur3_32Hash
	at jp.sourceforge.mergedoc.javassist.CtClassType.getMethod(CtClassType.java:1275)
	at jp.sourceforge.mergedoc.pleiades.runtime.LauncherTransformer.transformBytecode(LauncherTransformer.java:217)
	at jp.sourceforge.mergedoc.pleiades.runtime.AbstractTransformer$DefaultTransformerDelegate.transform(AbstractTransformer.java:194)
	at jp.sourceforge.mergedoc.pleiades.runtime.AbstractTransformer$DefaultTransformerDelegate.execute(AbstractTransformer.java:82)
	at jp.sourceforge.mergedoc.pleiades.runtime.AbstractTransformer.transform(AbstractTransformer.java:342)
	at jp.sourceforge.mergedoc.pleiades.runtime.LauncherTransformer.transform(LauncherTransformer.java:203)
	at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:246)
	at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:563)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at com.intellij.util.lang.ClasspathCache.getPackageNameHash(ClasspathCache.java:155)
	at com.intellij.util.lang.ClasspathCache.getClassLoadersByName(ClasspathCache.java:151)
	at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:172)
	at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:221)
	at com.intellij.util.lang.PathClassLoader.findClass(PathClassLoader.java:65)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
INFO  08:28:21.101 [ForkJoinPool-1-worker-23] (PleiadesConfig) Pleiades 構成ファイルをロードしました。pleiades-config-idea.xml
INFO  08:28:21.222 [ForkJoinPool-1-worker-19] (LauncherIdeaTransformer) 追加クラスパスあり: C:\Program Files\Android\Android Studio\plugins\IntelliLang\lib\IntelliLang.jar
INFO  08:28:21.222 [ForkJoinPool-1-worker-19] (LauncherIdeaTransformer) 追加クラスパスあり: C:\Program Files\Android\Android Studio\plugins\Kotlin\lib\kotlin-plugin.jar
INFO  08:28:21.229 [ForkJoinPool-1-worker-19] (LauncherIdeaTransformer) 追加クラスパスなし: C:\Program Files\Android\Android Studio\plugins\sdk-updates\lib\sdk-updates.jar
INFO  08:28:21.229 [ForkJoinPool-1-worker-19] (LauncherIdeaTransformer) 追加クラスパスなし: C:\Program Files\Android\Android Studio\plugins\tfsIntegration\lib\tfsIntegration.jar

なんかエラーが出てますね。
え~と、、、

ERROR 08:28:21.077 [main] (LauncherTransformer) バイトコード変換不可 util.jar/com/intellij/util/io/Murmur3_32Hash jp.sourceforge.mergedoc.javassist.NotFoundException: main(..) is not found in com.intellij.util.io.Murmur3_32Hash 

Javaのutil.jar内にMurmur3_32Hashがないよ。ってか?
そんなばかな・・・・
ということで、util.jarを見てみます。

as010.png

いや、いるし、、、、

Androidを再インストールしてみる

最終手段で、Android Studioを一旦アンインストールして、インストールしてみます。

日本語化はオフにして起動・・・・・うむ、起動した。(ここまでは予想通り)
日本語化します・・・・起動・・・・・エラー!!!!!

あれ?再インストールしてもダメじゃん。

正常に起動するPCとの違いはなんだ?

そう、全部の日本語化したAndroid Studioが起動しなくなるわけではないのです・・・・

ならないPCもあった・・・・
その違いはなんだ?

ということで、結論から書きます。
それは、日本語化アプリのバージョン

そう、バージョンの違いで本件の状況が起きるんです!

冒頭の前提条件でも書いたように、この現象は「最新版」で起きてます。
as011.png

1,2バージョン古いものも起きる可能性がありますが、少なくとも下記のバージョンは日本語化しても正常に起動してきます。
as012.png

「でも、最新版以外のバージョンは入手できないじゃん!」
そうですね、でも解決策があります。

それは、同時に公開されている「Java8対応版」を使う こと。
as013.png

こっちだと、2021.05のバージョンになっており、こっちは正常に日本語化が行われ起動します。
as014.png

ということで、レッツ!日本語化!
☆一応macOS版も試してみたら、起動さえしなくなるので、上記の「Java8対応版」を使って再度日本語化すると、正常に起動してくるようになるのを確認しました。

※一応、解決策が分かったので、特にPleiades日本語化のissuesには挙げないつもりですが、挙げたい人はやってみてください。

5
4
2

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
5
4