마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

NoSuchMethodError 에러 질문

0 추천

MainActivity_ViewBinding (빨간부분에서 에러납니다..) 에러코드 및 MainActivity.java는 댓글로 남기겠습니다.

public MainActivity_ViewBinding(final MainActivity target, View source) {
  this.target = target;

  View view;
  target.horizontalScrollView = Utils.findRequiredViewAsType(source, R.id.horizontal_scroll_view, "field 'horizontalScrollView'", RecyclerView.class);
  view = Utils.findRequiredView(source, R.id.main_year, "field 'tvYear' and method 'onClickYear'");
  target.tvYear = Utils.castView(view, R.id.main_year, "field 'tvYear'", TextView.class);
  view7f070076 = view;
  view.setOnClickListener(new DebouncingOnClickListener() {
    @Override
    public void doClick(View p0) {
      target.onClickYear();
    }
  });
  view = Utils.findRequiredView(source, R.id.main_month, "field 'tvMonth' and method 'onClickMonth'");
  target.tvMonth = Utils.castView(view, R.id.main_month, "field 'tvMonth'", TextView.class);
  view7f070075 = view;
  view.setOnClickListener(new DebouncingOnClickListener() {
    @Override
    public void doClick(View p0) {
      target.onClickMonth();
    }
  });
  target.listMain = Utils.findRequiredViewAsType(source, R.id.main_list, "field 'listMain'", RecyclerView.class);
  view = Utils.findRequiredView(source, R.id.today, "method 'onClickAdd'");
  view7f0700bd = view;
  view.setOnClickListener(new DebouncingOnClickListener() {
    @Override
    public void doClick(View p0) {
      target.onClickAdd();
    }
  });
  view = Utils.findRequiredView(source, R.id.memo_add, "method 'onClickMemoAdd'");
  view7f070077 = view;
  view.setOnClickListener(new DebouncingOnClickListener() {
    @Override
    public void doClick(View p0) {
      target.onClickMemoAdd();
    }
  });
}

 

익명사용자 님이 2019년 9월 30일 질문
MainActivity.java
public class MainActivity extends AppCompatActivity {
    public enum Month {
        JAN("Jan", 1),
        FEB("Feb", 2),
        MAR("Mar", 3),
        APR("Apr", 4),
        MAY("May", 5),
        JUN("Jun", 6),
        JUL("Jul", 7),
        AUG("Aug", 8),
        SEP("Sep", 9),
        OCT("Oct", 10),
        NOV("Nov", 11),
        DEC("Dec", 12);

        private String monthString;
        private int monthInt;

        Month(String month, int i) {
            monthString = month;
            monthInt = i;
        }

        public static int ToInt(String Input) {
            for (Month m : values()) {
                if (m.monthString.equals(Input)) {
                    return m.monthInt;
                }
            }
            return 1;
        }
    }

    @BindView(R.id.horizontal_scroll_view)
    RecyclerView horizontalScrollView;

    @BindView(R.id.main_year)
    TextView tvYear;
    @BindView(R.id.main_month)
    TextView tvMonth;
    @BindView(R.id.main_list)
    RecyclerView listMain;
    private RecyclerView.Adapter mSimpleStringRecyclerViewAdapter;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;
    private List<String> months = new ArrayList<>();
    private List<String> years = new ArrayList<>();



    @OnClick(R.id.today)
    public void onClickAdd() {
        Calendar cal = Calendar.getInstance();
        tvYear.setText(String.valueOf(cal.get(Calendar.YEAR)));
        tvMonth.setText(new SimpleDateFormat("MMM", Locale.ENGLISH).format(cal.get(Calendar.MONTH)));
    }
    @OnClick(R.id.main_month)
    public void onClickMonth() {


        horizontalScrollView.setAdapter(new SimpleStringRecyclerViewAdapter(new SimpleStringRecyclerViewAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position, String value) {
                //list item was clicked
                setupDate(value, 0);
            }
        }, months));


        Animation animation = new AlphaAnimation(0, 1);
        animation.setDuration(1000);
        horizontalScrollView.setVisibility(View.VISIBLE);
        horizontalScrollView.setAnimation(animation);
    }

    @OnClick(R.id.main_year)
    public void onClickYear() {

        horizontalScrollView.setAdapter(new SimpleStringRecyclerViewAdapter(new SimpleStringRecyclerViewAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position, String value) {
                //list item was clicked
                setupDate(value, 1);
            }
        }, years));

        Animation animation = new AlphaAnimation(0, 1);
        animation.setDuration(1000);
        horizontalScrollView.setVisibility(View.VISIBLE);
        horizontalScrollView.setAnimation(animation);
    }



    @OnClick(R.id.memo_add)
    public void onClickMemoAdd() {
        Intent intent = new Intent(this, MemoActivity.class);
        startActivity(intent);
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        Calendar cal = Calendar.getInstance();
        String dateMonth = new SimpleDateFormat("MMM", Locale.ENGLISH).format(cal.get(Calendar.MONTH) + 1);
        String dateYear = String.valueOf(cal.get(Calendar.YEAR));


        tvMonth.setText(dateMonth);
        tvYear.setText(dateYear);

        //memo list
        mLayoutManager = new LinearLayoutManager(this);
        mAdapter = new MainAdapter(Integer.valueOf(tvYear.getText().toString()), Month.ToInt(tvMonth.getText().toString()));
        listMain.setLayoutManager(mLayoutManager);
        listMain.setAdapter(mAdapter);


        //footer
        String[] monthList = new DateFormatSymbols(Locale.ENGLISH).getShortMonths();


        for (int j = 0; j < 12; j++) {
            months.add(monthList[j]);
        }
        for (int j = 0; j < 10; j++) {
            int a = 2010;
            years.add(""+ (a + j));
        }


        LinearLayoutManager horizontalLayoutManager
                = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);



        horizontalScrollView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL));
        horizontalScrollView.setLayoutManager(horizontalLayoutManager);


    }

    @Override
    public void onBackPressed() {
        if (horizontalScrollView.getVisibility() == View.VISIBLE) {
            horizontalScrollView.setVisibility(View.GONE);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
    }
    private void refreshList() {
        mAdapter = new MainAdapter(Integer.valueOf(tvYear.getText().toString()), Month.ToInt(tvMonth.getText().toString()));
        listMain.setAdapter(mAdapter);
        mAdapter.notifyDataSetChanged();
    }
    public void setupDate(String value, int status) {
        switch (status) {
            case 0:
                tvMonth.setText(value);
                break;
            case 1:
                tvYear.setText(value);
                break;
        }
        horizontalScrollView.setVisibility(View.GONE);
        refreshList();
    }

}
에러코드
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar)


        at butterknife.internal.DebouncingOnClickListener.<clinit>(DebouncingOnClickListener.java:12)
        at com.example.myapplication.MainActivity_ViewBinding.<init>(MainActivity_ViewBinding.java:40)
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at butterknife.ButterKnife.bind(ButterKnife.java:170)
        at butterknife.ButterKnife.bind(ButterKnife.java:99)
        at com.example.myapplication.MainActivity.onCreate(MainActivity.java:131)
        at android.app.Activity.performCreate(Activity.java:7802)
        at android.app.Activity.performCreate(Activity.java:7791)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

1개의 답변

0 추천
쎄미 (162,410 포인트) 님이 2019년 9월 30일 답변
android {
    compileOptions {
        targetCompatibility = "8"
        sourceCompatibility = "8"
    }
}
이렇게 적용했는데도 이런 에러가 뜹니다..ㅠ
8이 아니라 1.8 일거예요
...