Java 不兼容的类型:MainActivity无法转换为LifecycleOwner

Java 不兼容的类型:MainActivity无法转换为LifecycleOwner,java,android,android-gradle-plugin,android-room,android-livedata,Java,Android,Android Gradle Plugin,Android Room,Android Livedata,我用它作为LiveCycle的所有者,但是它被拒绝了,我得到了一个错误,正如你在图片中看到的。 我从事Api 25的工作,我认为问题可能与此版本有关 这是关于我的sdk的信息 compileSdkVersion 25 buildToolsVersion '25.0.2' 这是我的代码: private void retrieveTasks() { Log.d(TAG, "Actively retrieving the tasks from the DataBase"); //

我用它作为LiveCycle的所有者,但是它被拒绝了,我得到了一个错误,正如你在图片中看到的。 我从事Api 25的工作,我认为问题可能与此版本有关 这是关于我的sdk的信息

compileSdkVersion 25
buildToolsVersion '25.0.2'
这是我的代码:

private void retrieveTasks() {
    Log.d(TAG, "Actively retrieving the tasks from the DataBase");
    // Extract all this logic outside the Executor and remove the Executor
    // Fix compile issue by wrapping the return type with LiveData
    LiveData<List<TaskEntry>> tasks = mDb.taskDao().loadAllTasks();
    // Observe tasks and move the logic from runOnUiThread to onChanged
    tasks.observe(this, new Observer<List<TaskEntry>>() {
        @Override
        public void onChanged(@Nullable List<TaskEntry> taskEntries) {
            Log.d(TAG, "Receiving database update from LiveData");
            mAdapter.setTasks(taskEntries);
        }
    });
}
如果有人知道问题的原因,请告诉我,因为您可以阅读
生命周期所有者
已添加到支持库
26.1.0
。解决问题的最简单方法是升级支持库版本。

好问题

默认情况下,Support Library 26.1.0及更高版本中的片段和活动已经实现了LifecycleOwner接口

但在版本25中,您需要实现LifecycleOwner接口 比如说

public class MyActivity extends Activity implements LifecycleOwner {
    private LifecycleRegistry mLifecycleRegistry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mLifecycleRegistry = new LifecycleRegistry(this);
        mLifecycleRegistry.markState(Lifecycle.State.CREATED);
    }

    @Override
    public void onStart() {
        super.onStart();
        mLifecycleRegistry.markState(Lifecycle.State.STARTED);
    }

    @NonNull
    @Override
    public Lifecycle getLifecycle() {
        return mLifecycleRegistry;
    }
}

来源:

也有同样的错误。升级到androidx支持库修复了该问题。
在Android Studio内部选择:重构->迁移到Android x

您的MainActivity扩展了什么?MainActivity扩展AppCompatActivity实现了TaskAdapter.ItemClickListener我的计算机中没有空间升级我的支持库版本,所以我需要以前的版本。
public class MyActivity extends Activity implements LifecycleOwner {
    private LifecycleRegistry mLifecycleRegistry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mLifecycleRegistry = new LifecycleRegistry(this);
        mLifecycleRegistry.markState(Lifecycle.State.CREATED);
    }

    @Override
    public void onStart() {
        super.onStart();
        mLifecycleRegistry.markState(Lifecycle.State.STARTED);
    }

    @NonNull
    @Override
    public Lifecycle getLifecycle() {
        return mLifecycleRegistry;
    }
}