问答详情
源自:5-4 自定义控件

继承自FarmeLayout 的InputView方法重构后报错

public class InputView extends FrameLayout {

    public InputView(@androidx.annotation. Context context) {
        super(context);
    }

    public InputView(@androidx.annotation. Context context, @androidx.annotation. AttributeSet attrs) {
        super(context, attrs);
    }

    public InputView(@androidx.annotation. Context context, @androidx.annotation. AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public InputView(@androidx.annotation. Context context, @androidx.annotation. AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }
}
加粗部分显示无法解析是什么原因?


提问者:BCodeFans 2019-03-20 22:34

个回答

  • 就我皮
    2019-05-21 17:32:59

    说错,这样会有其他问题。

    加入:

    import android.support.annotation.NonNull;
    import android.support.annotation.Nullable;


    可以解决

  • 就我皮
    2019-05-21 16:22:01

    在gradle.properties 文件中写入下面两行:

    android.useAndroidX=true
    android.enableJetifier=true


    当然也可以在创建项目的开始就 勾选【Use AndroidX artifacts】 就不会出现这个问题。

    如果出现这个问题,配置下AndroidX 就行。

  • qq_慕侠6004736
    2019-05-01 14:15:42

    我的解决方法,你们可以式一下,

    1.Build -> Clean Project

    2.Build->Rebuild Project

    3.Tools -> Android -> Sync Project With Gradle Files

    4.某些 setting 出了问题,点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。语法就会正确的高亮了。

    5.粘贴了别的代码进来,而有的图片之类的文件没有粘进来,解释器解释不通了,在下次启动的时候就会出现Cannot resolve symbol R,多半是xml文件有问题,标签不匹配等等,仔细检查

    6.选中自己的project然后按F4,进入Project Structure检查sdk是否正确。

    7.重启Android studio;


  • 慕仔3301529
    2019-04-14 10:24:19

    androidX的问题,具体可以百度研究一下

  • BCodeFans
    2019-03-20 22:37:22

    @androidx.annotation.后面都是NonNull和Nullable,这两部分无法解析