#java #android #android-widget #android-cardview
#java #Android #android-виджет #android-cardview
Вопрос:
Я создавал приложение, и оно работало хорошо, пока я не обновился до последней версии Android Studio. Я получаю сообщение об ошибке » android.support.v7.widget.CardView (исправьте путь сборки, отредактируйте XML, создайте класс)» Мой cardview не показывает изображение. Приложение хорошо компилируется и устанавливается на мой телефон, но при запуске вылетает. И вчера все работало нормально. У меня самые последние зависимости, и я не знаю, почему мой cardviewer не работает. Есть решение? Нужно ли мне понизить версию sdk? Я искал везде и следил за множеством исправлений, и теперь я буквально рву на себе волосы, пытаясь исправить эту ошибку. Изменение текущих зависимостей в соответствии с buildToolsVersion, похоже, тоже не работает.
XML
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Suicune">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical"
android:weightSum="12">
<GridLayout
android:id="@ id/mainGrid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
android:alignmentMode="alignMargins"
android:columnCount="1"
android:columnOrderPreserved="false"
android:padding="14dp"
android:rowCount="3">
<!-- Row 1 -->
<!-- Column 1 -->
<android.support.v7.widget.CardView
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="90dp"
android:layout_marginRight="90dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="5dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="0dp"
android:orientation="vertical">
<ImageView
android:id="@ id/suicuneframedata_button"
android:layout_width="wrap_content"
android:scaleType="fitXY"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/framedata_button" />
</LinearLayout>
</android.support.v7.widget.CardView>
<!-- Column 2 -->
<android.support.v7.widget.CardView
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="90dp"
android:layout_marginRight="90dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="5dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="0dp"
android:orientation="vertical">
<ImageView
android:id="@ id/suicunecombosheets_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:layout_gravity="center_horizontal"
android:src="@drawable/combosheets_button" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="90dp"
android:layout_marginRight="90dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="5dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="0dp"
android:orientation="vertical">
<ImageView
android:id="@ id/suicunenotableplayers_button"
android:layout_width="wrap_content"
android:scaleType="fitXY"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/notableplayers_button" />
</LinearLayout>
</android.support.v7.widget.CardView>
</GridLayout>
</LinearLayout>
Класс Java
package com.example.sayafkadam.ptdxassau<
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
public class Suicune extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_suicune);
getSupportActionBar().setTitle("Suicune Database");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ImageView FrameData;
ImageView ComboSheets;
ImageView NotablePlayers;
FrameData = (ImageView) findViewById(R.id.suicuneframedata_button);
FrameData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentLoadSuicuneInfo = new Intent(Suicune.this,
SuicuneFD.class);
startActivity(intentLoadSuicuneInfo);
}
});
NotablePlayers = (ImageView) findViewById(R.id.suicunenotableplayers_button);
NotablePlayers.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentLoadNotablePlayers = new Intent(Suicune.this,
SuicuneNP.class);
startActivity(intentLoadNotablePlayers);
}
});
}
}
Мой Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.sayafkadam.ptdxassault"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
buildToolsVersion = '28.0.3'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:gridlayout-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.github.chrisbanes:PhotoView:2.2.0'
implementation 'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'
implementation 'gr.pantrif:easy-android-splash-screen:0.0.1'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
Ответ №1:
Можете ли вы попробовать использовать
implementation 'androidx.cardview:cardview:1.0.0'
Вместо этого и
androidx.cardview.widget.CardView
В XML?
Комментарии:
1. Это сделало это! Я очень ценю помощь. Сейчас мне нужно сделать это для более чем 30 XML-файлов. Можете ли вы объяснить, почему это не работало раньше? Это потому, что я должен использовать androidx?
2. @Nobel Да, я предполагаю, что сейчас это просто не поддерживается, поскольку библиотека поддержки была более или менее заменена библиотекой androidx. Возможно, вам также захочется заменить остальные ваши библиотеки на androidx
3. @Nobel во-вторых, чтобы легко заменить их все сразу, выполните ctrl shift r и просто выполните массовую замену текста