1

我正在实现视图绑定,但我遇到了无法解析某些符号的问题。对于某些视图,IDE 会写信给我:Cannot resolve symbol.

活动:ActivityMain

public class ActivityMain extends AppCompatActivity {

    private ActivityMainBinding viewBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set activity layout.
        viewBinding = ActivityMainBinding.inflate(getLayoutInflater());
        View view = viewBinding.getRoot();
        setContentView(view);

        new AdAdaptiveKt(this, viewBinding.adViewContainer); //<<== Cannot resolve symbol viewBinding.adViewContainer

    }


}

布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mainFrameLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusable="true">

    ...

            <FrameLayout
                android:id="@+id/adViewContainer"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                />
     ...
</FrameLayout>

当我找到生成的文件时
/home/XXX/android-projects/XXX/app/build/generated/data_binding_base_class_source_out/debug/out/XX/XXX/XXX/databinding/ActivityMainBinding.java::

public final class ActivityMainBinding implements ViewBinding {

    ...

  @NonNull
  public final FrameLayout adViewContainer;

   ...
}

所有视图都正确生成。构建没问题,我可以在真实设备上运行项目。但 Android Studio 仍然给我写信:Cannot resolve symbol.

Android Studio 3.6.3,
Android gradle 插件 3.6.3,
Gradle:测试:5.6.4 - 6.3

我试过了:

  • 清理项目,重建,
  • 使缓存无效并重新启动,
  • 导入项目
  • 删除.idea.gradle项目目录
  • 删除目录/home/XXX/.gradle并打开项目
  • 在 Android Studio 4.0-beta1 和 4.1-canary2 中打开项目

问题已解决我在布局中
有注释 ( ) 并且无法正常工作。我不为什么?有人可以验证吗?<!--&&-->viewBinding

4

0 回答 0