[android] androidxにプロジェクト移行したら、OssLicensesMenuActivity でエラー

調べたけどなかなかぴったり説明が出なかったので。

targetSdkVersion 27 を 28 にしてねwariningがよく出るようになってきたので 28にアップしたら、androidxにしなきゃダメみたいなメッセージが出てきたので、ライブラリの依存性をごりごり修正してたら、OSSライセンス一覧生成画面のところで以下のエラー

java.lang.IncompatibleClassChangeError: Class 'com.google.android.gms.oss.licenses.OssLicensesMenuActivity' does not implement interface 'androidx.lifecycle.LifecycleOwner' in call to 'androidx.lifecycle.Lifecycle androidx.lifecycle.LifecycleOwner.getLifecycle()' (declaration of 'androidx.lifecycle.LiveData' appears in ・・・

解決方法 以下をgradleに追加

implementation "androidx.appcompat:appcompat:1.1.0-rc01"

リグロードサーガ2 オリジナルサウンドトラックの写真

しばらく更新をまた怠っていたですが、忙しいときは忙しいのです。。。

最近ほんと断捨離にこっていていろいろ始末つけるべきものを整理していたのですが、ネットで意外にリグロードサーガ2 オリジナルサウンドトラック(ゲームディスク側ではなく音楽集の方)のカバー写真が見つからなかったので、とりあえず上げておきます。

ぼくはパソコン(5)

で、ようやくいろいろ考えたオチに持ち込もうという話です。

最後の「さよなら世界」には句読点を入れたかったのですが、文字をいろいろいじっても話が通じなくなったりニュアンスが変わったりでうまくいかず、仕方なく句読点なしにした記憶があります。

ぼくはパソコン(4)

パソコンでゲームをしている想定です。パソコンになった人がいろいろPCでやりそうなことをシチュエーションとしてバラバラに振りまいている感じです。

わずかずつ「自分もPCを触りたいぞ」みたいな雰囲気を表現に入れようと工夫はしています。

ぼくはパソコン(3)

まぁキーボードにコーヒーこぼしたのよくある話です。

前回これを複数枚にしようと思ったときに、わりとオチまでの間にいろいろあったんだ、的な話にしようと考えたので、ありえそうな小話を捻出してはめこんでいった段階です。なのでこれの内容に深い意味はありません。この手のサブエピソードにありそうな、いろんな話ということを考えて、できるだけ分野を別々にしています。

この頃にはオチはほぼ案として固まったので、最終コマの文言とかも内部的には考えていました。

ぼくはパソコン(2)

まぁありきたりなエロ表現ですな。ここは出来がよくないとは認識している。

この段階ではまだオチをどうするかなと模索していた段階なのですが、今までの54文字と違って少し小話を織り込んでバックに長編がありそうな体にしようと思って、この後にいくつか小話をいれようとは考えました。

ただここでは

  • PCになった本人はPCを自由に動かせない
  • PCを操作する誰か第三者がいる

という枠組みにしようとは決めました。

ぼくはパソコン(1)

これも本当は複数枚で書くつもりはなくて、単一オチで作ったのです。

生まれ変わりだ→パソコンになっていた→「望みがかなった!」→お前の望みはパソコンになることかよ。変な奴! みたいな落とし方を想定していたのです。

でも書いてみたらなんとなくこの後の話が思い浮かんでしまったもので。

でもこの時点で全体のオチは考えていませんでしたね。

何も考えずにGlideを使う(Android)

取り急ぎ細部は考えずにRESTからのURLで画像を表示する。

public class ListRecycleViewAdapter extends RecyclerView.Adapter<ListViewHolder> {

    private List<InfoRowData> list;
    private Context context;


    public ListRecycleViewAdapter(Context context, List<InfoRowData> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ListViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_row, parent, false);
        return new ListViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final ListViewHolder holder, final int position) {
        //  非同期取得
        if (list.get(position).getLogoUri() != null) {
            String url = list.get(position).getLogoUri();
            Glide.with(context)
                    .load(url)
                    .placeholder(R.drawable.ic_default_icon)
                    .into(holder.LogoIcon);
        } else {
            Glide.with(context)
                    .load(R.drawable.ic_default_icon)
                    .placeholder(R.drawable.ic_default_icon)
                    .into(holder.LogoIcon);
        }
    }
}
public class DetailsFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_details, container, false);

        ImageView iconView = view.findViewById(R.id.logoIcon);
        //  非同期取得
        if (data.getLogoUrl() != null) {
            String url = data.getLogoUrl();
            Glide.with(getContext())
                    .load(url)
                    .placeholder(R.drawable.ic_default_icon)
                    .into(iconView);
        } else {
            Glide.with(getContext())
                    .load(R.drawable.ic_default_icon)
                    .placeholder(R.drawable.ic_default_icon)
                    .into(iconView);
        }

    }
}

案件固有名詞をわざわざ除去するのは面倒だな。そういうツールも作るべきかね。

https://github.com/bumptech/glide/wiki

https://bumptech.github.io/glide/doc/getting-started.html

みんな同じに(2)

まぁオチは元のもくあみ的な話です。1枚目と2枚目の間にどんな話があったかは自由に連想してもらってOKです。こっちも何も考えていません。

なんとなくサスペンス風とか国家陰謀アクションとか異世界ものとか超人バトルものとかいろいろはまりそうです。54文字で話の背景とかを記述することは不可能なので、物語の舞台や記述されない間隙は「あなたが知ってるよくある映画、小説、アニメ、漫画」の展開がはまることを想定しています。ですので好きに連想してください。