Help us understand the problem. What is going on with this article?

AndroidXとSupportライブラリとは

この記事の概要

AndroidXとV7やDesign等のSupportライブラリの違いについて説明します。
とある参考書を元にCoodinatarLayoutのテストプログラムを書いていたら、詰まったのでとりあえず記事にしてみます。
間違っていたら、コメントで教えてください。
ちなみに参考書はこちらです。
基礎&応用力をしっかり育成!Androidアプリ開発の教科書 Kotlin対応 なんちゃって開発者にならないための実践ハンズオン

両者の違い

乱暴に言えば新しいか古いかです。
当然、新しい方のAndroidXをGoogleは推奨しています。

Supportライブラリとは

ザックリ言うと、新しいOSバージョンでしか使えないクラス(ToolBarとか)を古いOSバージョンでも使えるように互換性をもたせるライブラリ(パッケージ)です。
これがないと古いOSで使えないクラス(Fragmentとか)が多すぎて大変です。
ただ、ほぼ同じ機能を持っていて改良されているAndroidXが出たので、GoogleはAndroidXの使用を推奨しています。
同じ機能を持つのでAndroidXとSupportライブラリ、クラス名は一緒でもパッケージ名は違うものが存在します。
ややこしいので、この記事ではAndroidXより前はまとめてSupportライブラリと呼称しています。

色々細かな説明もありますが、それは下記のURLを参考にしてください。
https://developer.android.com/topic/libraries/support-library/features?hl=JA

OSバージョンとは?
AndroidのOSのバージョンのことを指します。
ややこしいのが、
Android5.1、
Lollipop、
API21
と同じOSバージョンに対して3つの呼び方があることです。
記事の本題ではないので、細かく触れませんが
正式名称、
あだ名、
開発用の名称
くらいの認識でOKです。

AndroidXとは

API28以降で導入された新しいSupportライブラリです。
とはいっても、Supportライブラリを改良したものなので、使い方はあまり変わりありません。
そして、(繰り返すようですが)Supportライブラリと同じクラス名のものが存在します。

重要なのは、AndroidXとSupportライブラリは共存出来ない、ということです。

下記を参考にしてください。
https://developer.android.com/jetpack/androidx?hl=JA

詰まったポイント

問題点
参考書にはSupportライブラリのV7パッケージを使えと言われているのに、実際にAndroidStudioへ書き込むとMissingClassと表示され、使用できない。

原因
AndroidXを使用する設定だったのに、サポートライブラリを使おうとしていたこと。

解決方法
①AndroidXをおとなしく使う。
(パッケージ名が違いますが、機能とクラス名は一緒なので、正直これが一番だと思います。)

②プロジェクトを作り直して、use androidx.* artifactsのチェックを外す
*ただし、API29以上は強制的にチェックがついています。
その場合はOSバージョンを下げるか、①しかないと思います。
下記のURLがかなり参考になります。
https://akira-watson.com/android/androidx.html

まとめ

・Supportライブラリの後継が、AndroidX
・SupportライブラリとAndroidXは一緒に使えない
・基本的にはAndroidXを推奨

独り言

参考書、2019年7月に発売されたばかりのものなんですが、AndroidXに関しては触れていません。
正直、Supportライブラリではなく、AndroidXで書き直すべきなのではと思います。

R-Az
19新卒でエンジニアになった文系F欄卒の素人。 今後はAndroid、ios両方こなせるアプリ開発エンジニアになる予定。 なんでも気軽にコメント下さい。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした