unable to resolve class GradleException
/android/app/build.gradleでunable to resolve class GradleExceptionというエラーについて。
Android API 29以降のバージョンだと、GradleException()に対応していないので、FileNotFoundException()に変更する必要があるみたいです。
基本は音楽活動について、あと、なんやかしogasawaraが書きます
/android/app/build.gradleでunable to resolve class GradleExceptionというエラーについて。
Android API 29以降のバージョンだと、GradleException()に対応していないので、FileNotFoundException()に変更する必要があるみたいです。
<今回の環境>
Flutter version 3.10.6
share_plus: 7.0.2
Android 10
Flutterのパッケージshare_plusのShare.shareFilesが非推奨ということで、vscodeから注意される。
下記の記事によると2022年11月3日よりバージョン 4.5.0 以降ではshareFiles()が非推奨になり、代わりにshareXFiles()が導入されたとのこと。
小ネタ/Flutter で share_plus を使って共有機能を実装する
とりあえず、Share.shareFilesが非推奨なのでShare.shareXFilesを使ってくださいよってことらしい。
final File imageFile = await File('${dir.path}/image.png').writeAsBytes(response.data);
await Share.shareFiles([file]);
処理の内容としてはローカルのテンポラリーに画像データを一時保存し、それをshare_plusでシャアできるようにする機能。
変数imageFileをXFile型に変更すればいいのかな、と思ったのですが、XFilesはwriteAsBytesの機能が廃止されているみたいなのでwriteAsBytesまではFileで処理してシェアするのはXFile型の変数を別途用意して賄う方針にしました。
final File imageFile = await File('${dir.path}/image.png').writeAsBytes(response.data);
XFile file = XFile(imageFile.path);
await Share.shareXFiles([file]);
こんな感じでXFileを作ってあげて、shareXFilesの引数にXFileをいれたら改善します。
Flutterでのネイティブアプリの開発に興味があったので開発環境を構築してみました。Macでの開発環境の構築は情報がたくさんあるのですがWindowsだとあんまりやってる人がいなくて途中ハマったところとかあるので備忘録として記しておきます。
正直、iosのことも考えるとmacで開発環境の構築したいところではあるのですが、生憎macOSのPCを持っていないのでWindows10でやってます。なのでiosアプリも作りたいよって方はmacで開発環境を構築するようにお願いします。
さっそくですが、大まかな流れとしては以下の記事を参考に構築させて頂きました。
https://qiita.com/smiler5617/items/fbfee798b641f0352176
1.Flutter SDK のインストール
2.Android Studioのインストール
3.VScodeにプラグインのインストール
4.Flutterプロジェクト作成前の最終確認
5.Flutterプロジェクトの作成
という感じですね。詳しい手順は元記事を参照して頂くとしてハマったポイントだけメモっておきます。
「 ! Warning: `dart` on your path resolves to …」??
flutter doctorを実行すると、パスは通っているのだけれど、「 ! Warning: `dart` on your path resolves to …」みたいなwarningが表示される状態になりました。
$ which flutter
で、確認すると環境変数に設定したパスよりも上に確かになんかパスがいたので、そこをたどってみると、flutterってファイルがあったので消したら直りました。この対応が正しいのかどうか…、不明なのと原因も分からないので行う際は自己責任でお願いします。
cmdline-toolsをどこからインストールするか分かり辛い
赤丸の部分がタブになっているという…、SDK ToolsというところをクリックするとAndroid SDK cmdline-toolsというのが表示されるので、そこにチェックを入れてapplyするとインストールできます。
そんな感じで個人的な備忘録でした。
選択ソートのPHPでの実装例です。
ChatGPTに教えて貰いました。備忘録として。
これらのソートアルゴリズムはそれぞれ特徴と効率性が異なるため、ソート対象のデータの特性によって適切なアルゴリズムを選択することが重要です。
二次元配列の処理に手間取ったので練習として作成したコード。$div_numという変数でブロックサイズを指定し6x6の二次元配列を指定したブロックサイズ毎に合計して結果を出力します。
$div_numで割り切れない場合はエラーになるのでtry-catchで例外処理にしています。
15行目以降の$i += $div_numと$j += $div_numがポイントで行と列の処理のインクリメントが$div_numずつ増えていくことで指定したブロックサイズ毎の処理を実現しています。
最近、話題になっているMeta社のオープンソースのLLM「Llama 2」のHugging Face Hub(ハギングフェイス・ハブ)で共有されているデモを試してみました。
ちなみにHugging Face Hubは、Hugging Face社が提供している自然言語処理(NLP)のためのオープンソースのモデルやデータのリポジトリということで、学習済みのモデルが共有されたりするサービスです。
以下のリンクよりデモ画面に飛べます。
ysharma/Explore_llamav2_with_TGI
デモのUIはこんな感じ。
日本語で会話できるか聞いてみたところ、会話できると返答があったものの、その後、英語で文章を生成しているので、今のところ日本語はあんまり得意ではない様子。
せっかくオープンソースのLLMが出てきたので、今後、自身の開発などでも、ぜひ、利用してみたいと思います。
再帰的アルゴリズムの練習のためにPHPでハノイの塔を解いてみました。正直、再帰的アルゴリズムについては、まだ頭が混乱するので、ちょっと数をこなす必要があるなと感じています。
ハノイの塔(Tower of Hanoi)は、数学的なパズルや再帰的アルゴリズムの代表的な例として知られています。
ゲームの目的は、3本の棒といくつかの円盤があるとき、最初に一つの棒に積まれた円盤を他の棒に移動させることです。
ハノイの塔は再帰的アルゴリズムを用いて解くことが一般的です。再帰的アルゴリズムは、大きな問題をより小さな問題に分割して解決する方法です。ハノイの塔では、最も大きな円盤を目標棒に移動させるために、残りの円盤を中間棒に移動させる必要があります。このように、大きな問題を小さな問題に分割して解決する再帰的な手法を使うことで、効率的に円盤を移動させることができます。
ハノイの塔は再帰やスタックなどの基本的なアルゴリズムとデータ構造を理解するのに役立つ教育的な側面を持っています。また、複雑なアルゴリズムや再帰的なアプローチを学ぶ上での良い練習問題としても利用されます。
ソートアルゴリズムへの理解を深めるためにPHPでバブルソートを実装してみました。
バブルソート(Bubble Sort)は、隣接する2つの要素を比較し、必要に応じて交換を行いながら要素を適切な位置にソートしていくアルゴリズムです。
アルゴリズムとデータ構造の学習計画をChatGPTにたてて貰いました。以下の形で取り組んでいきたいと思います。
ChatGPTを使うことでプログラミング学習の効率が本当にグンと高まりますので、プログラミング学習している人は、ぜひ、ChatGPTを講師として学習を進めてみてください。