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 の同期がとれない様子。
原因はシンボリックリンク
探してみると、同じ問題が指摘されていました。 プロジェクトパスの中にシンボリックリンクが含まれていると起こるようです。
参考
確かに、問題のプロジェクトのパスはシンボリックリンクを含んでいました。
解決策1 シンボリックリンク先のオリジナルを使う
シンボリックリンク先のオリジナルを開くと問題なく動作します。 今の所、これが一番簡単な解決策だと思われます。
解決策2 マウントする1
何らかの理由でどうしてもオリジナルを指定したくない場合は、シンボリックリンクを使うのではなく、マウントしてしまうという手があります。
bindfs を使えばユーザー権限で手軽にマウント出来ます。
$ bindfs --no-allow-other org_path dst_path |
解決策3 マウントする2
root 権限を持っているのであれば、fstab に書いてしまうという手もあります。
org_path dst_path none bind 0 0 |
fstab の記述を間違えるとシステムが正しく起動しなくなったりします。 ご注意を。
0 件のコメント:
コメントを投稿