簡體   English   中英

升級gradle插件時獲取java.lang.NoSuchMethodError

[英]While upgrading gradle plugins getting java.lang.NoSuchMethodError

我將android gradle插件升級到
classpath'com.android.tools.build:gradle:2.2.0-beta2'

我在HomeScreenActivity上遇到錯誤,例如

Java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener(Landroid/view/View;Landroid/support/v4/view/OnApplyWindowInsetsListener;)V in class Landroid/support/v4/view/ViewCompatLollipop; or its super classes (declaration of 'android.support.v4.view.ViewCompatLollipop' appears in /data/data/test.bpl.com.bploximeterdemo/files/instant-run/dex/slice-internal_impl-24.2.0_adc91965034c97937e0e3e7bf26df26d4116a5ab-classes.dex)
                                                                                          at android.support.v4.view.ViewCompat$LollipopViewCompatImpl.setOnApplyWindowInsetsListener(ViewCompat.java:1537)
                                                                                          at android.support.v4.view.ViewCompat.setOnApplyWindowInsetsListener(ViewCompat.java:2787)
                                                                                          at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:389)
                                                                                          at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
                                                                                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
                                                                                          at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:76)
                                                                                          at android.support.v7.app.AlertController.installContent(AlertController.java:213)
                                                                                          at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:240)
                                                                                          at android.app.Dialog.dispatchOnCreate(Dialog.java:394)
                                                                                          at android.app.Dialog.show(Dialog.java:295)
                                                                                          at wl.bpl.com.bploximeter.HomeScreenActivity.show_dialog(HomeScreenActivity.java:1252)
                                                                                          at wl.bpl.com.bploximeter.HomeScreenActivity.onCreate(HomeScreenActivity.java:235)
                                                                                          at android.app.Activity.performCreate(Activity.java:6259)
                                                                                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
                                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
                                                                                          at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                                          at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

HomeScreenActivity代碼為

  public class HomeScreenActivity extends AppCompatActivity {


        AlertDialog alert;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.home);
            overridePendingTransition(R.anim.trans_left_in, R.anim.trans_left_out);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

            if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
                Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();

            }

            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
                        != PackageManager.PERMISSION_GRANTED) {
                    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                            Manifest.permission.ACCESS_COARSE_LOCATION)) {
                    } else {
                        ActivityCompat.requestPermissions(this,
                                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                                PERMISSION_REQUEST_COARSE_LOCATION);
                    }
                }
            }


            myBleRecever = new BleBroadCastReceiver();
            registerReceiver(myBleRecever, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));

            if(device_macid=="")
            {
                show_dialog();
            }

        }

private  void show_dialog()
        {

            AlertDialog.Builder builder = new AlertDialog.Builder(HomeScreenActivity.this);
            builder.setMessage(R.string.connect_device)
                    .setPositiveButton("Connect", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Intent intent = new Intent(HomeScreenActivity.this, BLEdevicelistActivity.class);
                            if (isBleseviceRegister) {
                                unregisterReceiver(mGattUpdateReceiver);
                                isBleseviceRegister = false;
                            }
                            if (isBindServise) {
                            unbindService(mServiceConnection);
                                isBindServise = false;
                            }


                            alert.dismiss();
                            startActivityForResult(intent, Constants.BLUETOOTH_REQUEST_CODE);
                        }
                    });


                alert = builder.create();
                //  alert.setCancelable(false);
                alert.setCanceledOnTouchOutside(false);
                Logger.log(Level.DEBUG,TAG,"Alert dialog box gets called");
                alert.show();// **getting error here**

        }

請注意,此代碼工作較早

升級Android Studio時,我遇到了類似的問題。

將成績文件上的每個支持庫“ com.android.support:xxx:...”更新為24.2.0。

檢查是否有幫助。

編輯:

粘貼我的gradle文件

依賴項{編譯fileTree(include:['* .jar'],dir:'libs')testCompile'junit:junit:4.12'編譯'com.android.support:appcompat-v7:24.2.0'編譯'com.android .support:cardview-v7:24.2.0'編譯'com.android.support:design:24.2.0'編譯'com.google.android.gms:play-services:9.4.0'編譯'com.github.bumptech .glide:glide:3.7.0'編譯'com.google.android.gms:play-services-auth:9.4.0'編譯項目(':components')}

希望這將足夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM