由于“混合版本可能导致运行时崩溃”,因此运行应用程序时Android AVD崩溃

时间:2019-02-03 11:06:37

标签: android

错误是:

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。找到了   版本28.0.0、26.1.0。

这些是依赖项,appcompact视图下有红线

 dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.android.gms:play-services-ads:16.0.0'
}

主要活动。Java代码为

package com.example.agecalculatorpro;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

import android.app.DatePickerDialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

Button btn1;
EditText age;
TextView result;
private AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this,
                "ca-app-pub-3940256099942544~3347511713");

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

        btn1 = (Button) findViewById(R.id.btn1);
        age = (EditText) findViewById(R.id.age);
        result = (TextView) findViewById(R.id.result);
        btn1.setOnClickListener(this);


    }

    @Override
    public void onClick(View v)
    {
    String Input_year = age.getText().toString();
    result.setVisibility(View.VISIBLE);
    if(Integer.parseInt(Input_year) < 2017)
    {
        Calendar calendar = Calendar.getInstance();
        int current_year = calendar.get(calendar.YEAR);
        int current_age = current_year - Integer.parseInt(Input_year);
        result.setText("Your Age is: " + current_age);
    }
    else
    {
        result.setText("Please Enter Correct Year");
    }
    }
}

该应用程序要么继续崩溃,要么根本没有编译。在不同的AVD上有不同的行为。

此问题在输入admob行后开始: 实施'com.google.android.gms:play-services-ads:16.0.0' 17版本也显示相同的错误。 在使用admob应用之前,它无法正常运行。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

没关系...我只是选择擦除AVD上的数据,现在它们可以正常运行。 appcompat的红线保持原样,但该应用仍在运行。

答案 1 :(得分:0)

这很容易解决:

implementation ("com.google.android.gms:play-services-ads:17.1.3") {
    exclude group: "com.android.support"
}