投稿

10月, 2023の投稿を表示しています

.NET MAUI アプリで Xamarin パッケージが見つかりませんエラー問題

イメージ
 チュートリアルの通りに .NET MAUI の環境を構築したはずなのに サンプルアプリで パッケージ Xamarin.AndroidX.Navigation.Fragment が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 パッケージ Xamarin.Google.Android.Material が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 パッケージ Xamarin.Google.Crypto.Tink.Android が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 パッケージ Xamarin.AndroidX.Navigation.Common が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 パッケージ Xamarin.AndroidX.Security.SecurityCrypto が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 パッケージ Microsoft.Extensions.DependencyInjection が見つかりません。ソース C:\Program Files\dotnet\library-packs, Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在

Android エミュレーター 遅すぎ問題

イメージ
 .NET MAUI アプリの開発でAndroid Emulatorでデバッグしようにも 起動が遅すぎてストレスしかない いろいろ調べたら公式にちゃんと記載があった https://learn.microsoft.com/ja-jp/dotnet/maui/android/emulator/hardware-acceleration 「Windows で Hyper-V アクセラレーションを有効にする」 自分の環境で有効だったのはこれだった。 Hyper-Vは使っていたので「Hyper-V」は有効になっていたが 「Windows ハイパーバイザー プラットフォーム」が有効になっていなかった PC再起動してAndroid Emulatorでデバッグすると Android Emulatorの起動までの速さが全然違う。 めでたしめでたし

.NET MAUI を使ってAndroidアプリの作成

イメージ
 Androidアプリを作成したい!と今更思い立った。 Windowsで無料で知ってる言語で開発環境探したところ Xamarinというのを見つけたがAndroid14に対応せずに2024年5月1日でサポート終了だと。。。 Xamarinの後継が.NET MAUIということで調べてみる。 「.NET MAUIとは」 .NET Multi-Platform App UI (.NET MAUI) は、C# と XAML を使用して、ネイティブのモバイル アプリやデスクトップ アプリを作成するためのクロスプラットフォーム フレームワークです。 .NET MAUI を使用すると、1 つの共有コード ベースから Android、iOS、macOS、Windows で実行できるアプリを開発できます。 手元のPCにVisual Studio 2022  Version 17.7.5が入っているので この開発環境に決定。 【開発環境の構築】 VS2022に .NET MAUI サポートを追加する Visual Studio Installerを立ち上げて 「変更」をクリック 「.NET マルチプラットフォーム アプリの UI 開発」にチェック入れて「変更」 インストールが終わったら開発環境は完成。 【サンプルを起動してみる】 Visual Studio 2022を起動してプロジェクトを作成 「.NET MAUI アプリ」と「.NET MAUI Blazor アプリ」があり 「.NET MAUI Blazor アプリ」を選択して「次へ」 「.NET MAUI アプリ」  C#とXAMLを使ってネイティブアプリを作成する 「.NET MAUI Blazor アプリ」  .NET MAUI上でBlazorアプリ動かす ものらしい ここまでは特に問題なし! プロジェクトが作成されると Nugetパッケージの復元でエラーが出てエラーだらけ・・・ この対応は .NET MAUI アプリで Xamarin パッケージが見つかりませんエラー問題 で解決 エラーが出なければ早速ビルド! 「Android Emulator」を選択するとエミュレーターのインストールが走ります。 推奨されるものを選択して待つ。 Android SDKのライセンス契約は同意 で、ちょっとというか、かなり待つと 出た~! 開発

Windows11 右クリックの新規作成に「テキストドキュメント」がなくなった時の対処方法

イメージ
 フォルダ内にテキストファイルを作ろうと思ったらまた無くなってる・・・ Windows11環境は複数持っているので このPCでは元々無かったのか、再発なのか、初なのか、 わからないが毎度調べることになるので対処方法を残しておく。 【状況】 右クリック>新規作成 のメニューにテキストファイルが無い Shiftキー+右クリック>新規作成 のメニューにもテキストファイルが無い 【対応方法】 いろいろなサイトで レジストリをいじって\HKEY_CLASSES_ROOT\.txt を確認してShellNewが無かったら追加! とか メモ帳をアンインストールして再インストールだ! とか書いてるけど 正常なPCのレジストリ見たら ShellNewなんて無いがな レジストリをいじることに抵抗は無いけど、やる意味を感じない。 【結論】 タスクマネージャー開いて エクスプローラーのプロセスを右クリックして 再起動 ! エクスプローラーが再起動で落ちるから画面がチカっとするだけで はい、復旧!

Bloggerでソースコードをきれいに表示する

イメージ
 ソースコードの表示がうまくいかないので Google-code-prettify を利用するために設定してみる。 テーマのHTMLをカスタマイズする 「カスタマイズ」ボタン押して HTMLを編集します </head>の前に <!-- Google-code-prettifyを追加 --> <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/> <!-- /Google-code-prettify --> を追記 テーマを変更したい場合は テーマのサンプル 確認して 「skin=テーマ」のパラメータつければOK <!-- Google-code-prettifyを追加 --> <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst'/> <!-- /Google-code-prettify --> このままだと5行ごとにしか行番号が入らなくて 長いソースだと折り返してしまうので <style type='text/css'>    /* Google-code-prettifyの行番号を1行ずつ表示する */    pre.prettyprint.linenums li{     list-style-type: decimal;   }   /* 横スクロールバーを表示 */   pre.prettyprint {     word-wrap: normal;     overflow-x: auto;     white-space: pre;   } </style> あとは言語ごとにlangを指定すれば <pre class="prettyprint linenums lang=python">pythonのソースコード</pre> でいい感じになる ↓結果↓ @app.route('

pipのコマンドの覚書

 pipのコマンドはいつも忘れるのでメモしておく パッケージのインストール pip install <package-name> パッケージのインストール(バージョン指定) pip install <package-name>==<version> 使ったことないけど パッケージのアップデート pip install -U <package-name> 依存関係のチェック pip check Flask2.2.2とWerkzeug3.0.0の問題はでなかったな インストール済みパッケージのリスト表示 pip list インストール済みパッケージのうち、最新でないもののリスト表示 pip list -o,-outdated インストール済みパッケージを出力 pip freeze > requirements.txt これすると依存関係でインストールされたものも 書き出されてややこしくなるから使ってない まとめてパッケージをインストールする pip install -r requirements.txt

まちあてルが起動しなくなった

 ちょこっとソースいじって、いつものように $ gcloud app deploy  そして 「 まちあてル 」 にアクセスすると 502・・・502・・・??? 何が起きた? $ gcloud app logs tail -s default めっちゃエラー出てるwww from flask import Flask, render_template, request, make_response, jsonify    File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/__init__.py", line 5, in <module> from .app import Flask as Flask    File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 30, in <module>       from werkzeug.urls import url_quote  ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/layers/google.python.pip/pip/lib/python3.10/site-packages/werkzeug/urls.py) Flaskの起動時に'werkzeug.urls'から'url_quote'をインポートできなかった? 開発環境では問題ないのでrequirements.txtでインポートされたバージョンが違うのかも? $   pip  list -o  Package            Version Latest Type ------------------ ------- ------ ----- charset-normalizer 3.2.0   3.3.0  wheel click              8.1.6   8.1.7  wheel Flask       

AWS PythonのLambda関数でS3のファイル読み書き

イメージ
 PythonのLambda関数で「/tmp」に保存しているファイルは毎日削除されてしまうことを知り、S3に退避させる必要があったのでやってみた。 とりあえずS3にテスト用のバケットを作成して適当なjsonファイルをアップロードしておく Lambdaでテスト用の関数を作成する まずはアップロードしてあるファイルを取得するためのコードを書く AWSをPythonから操作するためのライブラリとしてboto3を利用する import boto3 boto3.resourceは無くなるわけではないが開発を止めるみたいな記事があったので boto3.clientを使います。 お作法がちょっと違うだけでできることは同じだと思う。 boto3.clientを使ったjsonファイルの取得 s3 = boto3 . client ( "s3" ) response = s3 .get_object( Bucket = "testdata" , Key = "test.json" ) body = response [ "Body" ].read() Bucketにバケット名 Keyにファイル名 responseのBodyにファイルの内容が入っているのでそれを取得します ファイルのまま取得するのであれば s3 .download_file( Bucket = "testdata" , Key = "test.json" , Filename = "/tmp/test.json" ) これだけですね。 今回のテストデータが50MBくらいあったのですが 取得に3秒くらいかかってる・・・ 思ったより遅い test.json→test.zipにしてみて取得後解凍するようにしてみたけど 解凍に時間かかってトータルそこまで変わらなかった・・・ boto3.resourceを使ったファイルの取得 s3 = boto3 . resource ( "s3" ) obj = s3 .Object( "testdata" , "test.json" ) response