こんにちは、 kazuです。
本日はAndroidアプリ作成をしていて
Bindingをしようとしたら 「Cause: couldn’t make a guess for com.sample.MyApplication.databinding.ActivityMainBindingImpl」
のエラーが出てつまずいた時の話をしようと思います。
条件
言語 : Java
IDE : AndroidStudio
アプリ名 : My Application
パッケージ名 : com.sample.MyApplication
コードを確認する
実際にコードを確認していきましょう!
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.moveButton.setOnClickListener(openActivity);
}
private final View.OnClickListener openActivity = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplication(), EditActivity.class);
startActivity(intent);
}
};
}
<!--?xml version="1.0" encoding="utf-8"?-->
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.constraintlayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<button
android:id="@+id/move_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" android:text="画面遷移する"
android:textstyle="bold" tools:ignore="MissingConstraints">
</button>
</androidx.constraintlayout.widget.constraintlayout>
</layout>
package com.cal.MyApplication;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class EditActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
}
}
android {
・
・
dataBinding {
enabled = true
}
・
・
}
追加
<activity android:name=".EditActivity">
</activity>
表示されたエラー
Cause: couldn't make a guess for com.sample.MyApplication.databinding.ActivityMainBindingImpl
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'
原因
原因はなんだったのでしょうか?
コードのミス?それともGladleの設定?
いいえ違いますパッケージ名です!
パッケージ名とはなんぞや?
ということでプロジェクト作成時この画面を通りませんでしたか?

上記画像の「package name」のところです。
つまりプロジェクト作成時からエラー出ることが決まっていたということです。
「パッケージ名」が原因?それのどこが悪いの?ということですが大文字が入っていることです。
最初の条件に戻ってみてください。
「com.sample.MyApplication」とあり赤字の部分が大文字になっていますよね?
これがエラーの原因です。
なのでリネームして「com.sample.myapplication」に変更してください。
上記でエラーが解決しました。
最後に
いかがでしたでしょうか?
これ結構詰まってしまいました。
ですので備忘録として残しました。
皆様のお役に立てれば幸いです。
最後までご覧いただきありがとうございました。