2018/12/15

Android Studio で "Argument for @NotNull parameter 'message' of ..." が発生するようになってしまった

@Android Studio 3.2.1 on Ubuntu 18.04 LTS

Android Studio を 3.2.1 にしたところ、IDE Fatal Errors が発生するようになってしまいました1

具体的には以下のようなエラー。

Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync/GradleSyncState.syncFailed must not be null
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync/GradleSyncState.syncFailed must not be null
 at com.android.tools.idea.gradle.project.sync.GradleSyncState.$$$reportNull$$$0(GradleSyncState.java)
 at com.android.tools.idea.gradle.project.sync.GradleSyncState.syncFailed(GradleSyncState.java)
 at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.doPopulateProject(IdeaSyncPopulateProjectTask.java:135)
 at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.populate(IdeaSyncPopulateProjectTask.java:97)
 at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.access$000(IdeaSyncPopulateProjectTask.java:39)
 at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask$1.run(IdeaSyncPopulateProjectTask.java:86)
 at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:750)
 at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
 at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
 at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
 at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
 at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:395)
 at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:745)

Android Support plugin の中で発生していて、どうも Gradle と Android Studio の同期がとれない様子。

原因はシンボリックリンク

探してみると、同じ問題が指摘されていました。 プロジェクトパスの中にシンボリックリンクが含まれていると起こるようです。

参考

linux - Android Studio 3.2.1 - Cannot sync project with gradle files: Argument for @NotNull parameter 'message' of ... must not be null - Stack Overflow

確かに、問題のプロジェクトのパスはシンボリックリンクを含んでいました。

解決策1 シンボリックリンク先のオリジナルを使う

シンボリックリンク先のオリジナルを開くと問題なく動作します。 今の所、これが一番簡単な解決策だと思われます。

解決策2 マウントする1

何らかの理由でどうしてもオリジナルを指定したくない場合は、シンボリックリンクを使うのではなく、マウントしてしまうという手があります。

bindfs を使えばユーザー権限で手軽にマウント出来ます。

$ bindfs --no-allow-other org_path dst_path

解決策3 マウントする2

root 権限を持っているのであれば、fstab に書いてしまうという手もあります。

/etc/fstab
org_path   dst_path   none  bind       0       0

fstab の記述を間違えるとシステムが正しく起動しなくなったりします。 ご注意を。

  1. Android Studio をアップデートするまでは特に問題がなかったプロジェクトです 
?

0 件のコメント: