質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

Q&A

解決済

1回答

1330閲覧

android.support.v7.widget.cardviewを使いたい

Jhon_McClane

総合スコア48

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

0グッド

0クリップ

投稿2020/04/20 14:10

編集2020/04/20 15:32

動画を見ながら学んでいるのですがandroid.support.v7.widget.cardviewが対応していませんでした。何をimplementationすればよいのかわかりません
以下のサイトに使い方が載っているのですが
Add this line to your Proguard config file
-keep class androidx.appcompat.widget.** { *; }
ここの記述がどこに書けばよいのかわかりません

https://github.com/ArthurHub/Android-Image-Cropper

-keep class androidx.appcompat.widget.** { *; }を追記

ファイル  Gradle Scripts->proguard-rules.pro # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile -keep class androidx.appcompat.widget.** { *; }

下のソースコードを書くとMissing classesのエラーがでました

<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" app:cardElevation="3dp" app:cardUseCompatPadding="true" app:cardCornerRadius="3dp" app:cardBackgroundColor="#fff" app:contentPadding="5dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_horizontal" android:orientation="horizontal"> <ImageView android:id="@+id/imageIcon" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher" /> </LinearLayout> </androidx.cardview.widget.CardView>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Android SDKによる開発では、API 29以降では旧来のSupport Libraryに代わって、AndroidXというライブラリー群が用いられるようになりました。AndroidXを用いるプロジェクトでは、android.supportから始まる名前のパッケージを用いることはできません。

AndroidXを用いるならば、次のサイトを参考にしてこれまでのクラスをどのように読み替えれば良いか参考にしながら進めましょう。
クラスのマッピング | Android Developers

旧来のSupport Libraryを用いたプロジェクトを作って進めたいならば、プロジェクト新規作成時のConfigure Your Projectの画面で、Use legacy android.support librariesというチェックボックスにチェックを入れてプロジェクト作成しましょう。

ただ、GithubにあるライブラリーはAndroidX対応されているようなので、動画で参考にしているというコードをAndroidX対応するように作り直すしかないんじゃないですかね。(AndroidXとSupport Libraryを混在させることはできません)

投稿2020/04/20 14:51

編集2020/04/20 15:02
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Jhon_McClane

2020/04/20 15:23

AndroidX対応で作ろうと思うのですが -keep class androidx.appcompat.widget.** { *; } これの追記する場所が合っているのかわかりません 新しくコードを載せておきますので合っているか教えてください
Jhon_McClane

2020/04/20 15:34

appのbuild.gradleに dependencies { implementation 'androidx.cardview:cardview:1.0.0' } でエラーが消えたのですがこれでいいのでしょうか
keicha_hrs

2020/04/21 09:06 編集

私は質問にある「動画」を見ていませんし、制作されているアプリの詳しいことまでは回答はできません。ただ、一般論の回答として、現行のAPI 29を用いようとしているのならSupport LibraryによるAPIは使えないということを述べさせていただいたに過ぎず、質問者様が制作されているアプリの詳しい構造を承知しているわけではありません。 その上でできうる補足ですが、 アーティファクトのマッピング https://developer.android.com/jetpack/androidx/migrate/artifact-mappings のページで、Support Libraryにおけるcom.android.support:cardview-v7はAndroidXではandroidx.cardview:cardviewになることが記されていますので、置き換え元に誤りがなければ移行先はそれで良いのではないかと思います。 それから、「これの追記する場所」について、proguard-rules.proへの記述を行ったがうまくいかなかったとのことですが、これについては詳しいことはわかりません。Android StudioにおけるProGuardの利用については アプリの圧縮、難読化、最適化 https://developer.android.com/studio/build/shrink-code?hl=ja に記述されているので、この中で参考になる情報を求めることになるのではないでしょうか。
Jhon_McClane

2020/04/23 08:16

わかりました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問