AGP Upgrade Assistant で 7.2 移行時にCause: manifestData.`package` must not be null

初回は、自動認識でダイアログから進むことになると思うが、

手動でやるなら以下から。


[Tools]

  ↓

[AGP Upgrade Assistant]

このステップでコケる。

Move package from Android manifest to build files

Declaration of a project's namespace using the package attribute of the Android manifest is deprecated in favour of a namespace declaration in build files.

なんすかねこれ。

 

Gradle sync failed: Cause: manifestData.`package` must not be null

Issue Tracker にありました。

AGP namespace property and app id suffix and Safe Args plugin don't work together

Using the new namespace property in build.gradle instead of the package attribute in AndroidManifest.xml while also using a custom applicationIdSuffix breaks androidx.navigation.safeargs plugin.

👉 Gradle sync failed: Cause: manifestData.`package` must not be null - Issue Tracker
👉 AGP namespace property and app id suffix and Safe Args plugin don't work together [232107688] - Visible to Public - Issue Tracker hatena-bookmark

どうやら、namespace の新記述は、

androidx.navigation.safeargs と同時に使えないようです。

使っているか、コード内を探してみました。


[Edit]

  ↓

[Find]

  ↓

[Find in Files ...]

androidx.navigation.safeargs

...

どうやら、ツールの書き換え内容は以下の様子。

👉 AndroidManifest の package 属性による名前空間宣言が廃止される - BattleProgrammerShibata hatena-bookmark

2行だけなので直接書き換えて namespace 記述は以前の形に戻す。と。

暫定的な対応なので、以下のようにFix版リリース時に注意が必要です。

👉 java.lang.IncompatibleClassChangeError: The method 'java.lang.Class java.lang.Object.getClass()' was expected to be of type interface but instead was found to be of type virtual hatena-bookmark


This version (1.2.0-alpha08) of the Compose Compiler requires Kotlin version 1.6.20 but you appear to be using Kotlin version 1.6.21 which is not known to be compatible.

こんなの出ましたけどー。


> Run with --scan to get full insights.


> Task :app:compileDebugKotlin FAILED
e: This version (1.2.0-alpha08) of the Compose Compiler requires Kotlin version 1.6.20 but you appear to be using Kotlin version 1.6.21 which is not known to be compatible.  Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).

言われるがままに、kotlin のバージョンを、1.6.20 に下げればこのエラーは消えてビルド通りますが、

Kotlin 安定版の 1.6.21 を 1.6.20 を下げる

ってのどうなのと。

 

Compose コンパイラ と Kotlin の互換性


Compose Compiler	Compatible Kotlin
1.2.0-alpha08		1.6.20
1.2.0-alpha07		1.6.10
1.2.0-alpha06		1.6.10

以下から、英語版 (言語を「English」に切り替える) にすると分かりやすいです。

👉 Compose to Kotlin Compatibility Map  |  Android Developers hatena-bookmark

Kotlin stable 1.6.21 に対応する Compose Compiler は 今現在は pre-release 版しかありません。


 

何でこんなことになるのか?


通常、安定版とアルファ版の両方が同じ日に修正された状態でリリースされると思われます。しかし、AndroidXのモノレポとその関連インフラは、実はこれを阻んでいます。リリースブランチが一つしかないので、Accompanist のような通常のプロジェクトとは異なり、別々に行うことを余儀なくされるのです。


Kotlin 1.6.20のアーティファクトがリリースされてから1週間。ComposeをアップデートするCLはリリース前にできていた。しかし、AndroidXのモノレポでは、無関係な50のライブラリを同時にアップデートすることを強制されるため、未だに不完全です。健全なプロジェクトであれば、同じ日にリリースするはずです。

Drop "androidx" from Jetpack Compose package name, for multiplatform, before 1​.​0 release.
👉 キャンペーン · Drop "androidx" from Jetpack Compose package name, for multiplatform, before 1​.​0 release. · Change.org hatena-bookmark

Compose コンパイラを開発する環境にいろいろ問題とかあるんですかね。

👉 公式 android デベロッパー の英語ページに日本語ページが遅れてる件 hatena-bookmark

 

2022-05-21 追記

1.6.21 対応の beta版がリリースされています。

compose の父が!


これも「English」ページのみ確認できます。注意です!
kotlinCompilerExtensionVersion = "1.2.0-beta02"

👉 Compose to Kotlin Compatibility Map  |  Android Developers hatena-bookmark



【速報】SNS で知る ウクライナ の状況

いろいろなWEBサービスが公開されては消えていってますが。

今ならこれ。

SNS を使った ウクライナ の状況

👉 Russia-Ukraine Monitor Map by Cen4infoRes · MapHub 

しかし、ウクライナ国内はネット使えてるんですよね?

👉 ウクライナの首都キエフのライブカメラをまとめておく 
👉 Facebook、ウクライナのユーザー向け自衛ツールを提供 - ITmedia NEWS 


まとも検索 検索オプション追加 のブックマークレット

使ってみると確かに便利です!

👉 「Google検索は死んでいる」がバズったので「まとも検索」を作った。:村上福之の「ネットとケータイと俺様」:オルタナティブ・ブログ 

Google 検索オプションやドメインのおさらいしながら、雑にブックマークレットにしておきます。

まとも検索

通常のGoogle検索の結果表示のあと、ブックマークレットで検索オプションを追加して、結果を絞り込みます。


javascript:(()=>{
  if (location.host == 'www.google.com' && location.pathname == '/search') {
    var params = new URLSearchParams(location.search);
    params.set('q', 'site:ac.jp OR site:go.jp OR site:lg.jp ' + params.get('q'));
    location.search = params.toString();
  }
})()

👉 Googleの検索言語をサクッと切り替えるためのブックマークレット - かみのメモ 

公的期間に限定: ac.jp/lg.jp/go.jp

https://www.google.com/search?q=site%3Aac.jp+OR+site%3Ago.jp+OR+site%3Alg.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

AC.JP
高等教育機関および学校法人などが登録できます。
- 大学、大学校、高等専門学校、大学共同利用機関、障害者職業能力開発校など
- 学校法人、職業訓練法人、国立大学法人、大学共同利用機関法人、公立大学法人など
- 専門学校や各種学校のうち、18歳以上を対象とするもの

LG.JP
地方公共団体と、それらの組織が行う行政サービスが登録できます。

GO.JP
日本の政府機関や各省庁所管の研究所、特殊法人、独立行政法人が登録できます。
政府機関は、一つの組織で複数のGO.JPドメイン名を登録できます。

👉 種類と対象 | JPドメイン名の種類 | JPドメイン名について | JPRS 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ac.jp OR site:go.jp OR site:lg.jp ' + params.get('q'));location.search=params.toString();}})()

医療情報に限定: 大学・大学病院(ac.jp)のみ

https://www.google.com/search?q=site%3Aac.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ac.jp ' + params.get('q'));location.search=params.toString();}})()

国内論文限定: ci.nii.ac.jp に限定

https://www.google.com/search?q=site%3Aci.nii.ac.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

CiNii(NII学術情報ナビゲータ[サイニィ])は、論文、図書・雑誌や博士論文などの学術情報で検索できるデータベース・サービスです。どなたでもご利用いただけます。

「CiNii Articles - 日本の論文をさがす」では、学協会刊行物・大学研究紀要・国立国会図書館の雑誌記事索引データベースなどの学術論文情報を検索できます。

👉 CiNii Articles - 日本の論文をさがす - 国立情報学研究所 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ci.nii.ac.jp ' + params.get('q'));location.search=params.toString();}})()

pdfのみ: 正確な情報が多い

https://www.google.com/search?q=filetype%3Apdf+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'filetype:pdf ' + params.get('q'));location.search=params.toString();}})()

英文論文限定: pubmed.ncbi.nlm.nih.gov に限定

https://www.google.com/search?q=site%3Apubmed.ncbi.nlm.nih.gov+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

PubMed is a free resource supporting the search and retrieval of biomedical and life sciences literature with the aim of improving health–both globally and personally.

The PubMed database contains more than 33 million citations and abstracts of biomedical literature. It does not include full text journal articles; however, links to the full text are often present when available from other sources, such as the publisher's website or PubMed Central (PMC).

👉 PubMed 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:pubmed.ncbi.nlm.nih.gov  ' + params.get('q'));location.search=params.toString();}})()

ありがとうございます。

ホント今の広告だらけの検索結果にうんざりです。

👉 ブックマークレットの登録方法 - Qiita 

👉 Google 検索オプション 
👉 Google 画像検索オプション 
👉 Google 動画検索オプション 
👉 ブックス検索オプション 

👉 Stackoverflow の短い公式URLでコピペ用ブックマークレットを作る 


【Playストア】今現在のアプリ更新時の審査日数を調べる方法

アプリ更新後のリリースされるタイミングをスクリプトで検知したりしていましたが。



👉 Play ストアから現在公開中のバージョンを取得する 
👉 macOS でスクリプトから通知を出す。 

この公開されるまでの時間が長くなったのは、コロナ禍の影響なのか、審査を細かく見るようになったからか、何なのか。


気になったので少し調べてみました。

アプリ名 アップロード日 ストア公開日 所要日数
YouTube 2/10 2/13 3
Amazonショッピング 2/2 2/10 8
Amazonプライムビデオ 2/8 2/10 2
ツイキャス 2/10 2/11 1
TouTubeStudio 2/3 2/10 7
Spotify 2/8 2/9 1
Googleカレンダー 2/1 2/9 8
Twitter 2/8 2/9 1
Google Keep 2/1 2/9 8
ABEMA 2/4 2/9 5
Googleフォト 2/9 2/9 0
メルカリ 2/4 2/9 5
インスタ 2/7 2/8 1
Facebook 2/12 2/13 1
Googleマップ 2/3 2/6 6
Googleドライブ 2/4 2/8 4
Google 2/4 2/7 3
Tver 2/3 2/4 1
Google Fit 1/31 2/4 4
Chrome 2/1 2/4 3
SpeedTest 1/19 2/3 15
Gboard 2/1 2/2 1
ニコ生 1/26 1/31 5

 

調べ方

Google Play ストアアプリで、右上アカウントから、


[アプリとデバイスの管理]

  ↓

[最近の更新を見る]

  ↓

[最近更新したアプリ]

たとえば、アプリ「ツイキャス」で見てみると、

【Playストア】今現在のアプリ更新時の審査日数を調べる方法

今現在が、2/15 なので、審査が終わって、ストアに公開されて、端末が検知して、更新したのが「4日前」の「2/11」。

タップして詳細画面へ。

【Playストア】今現在のアプリ更新時の審査日数を調べる方法

開発者は分かってると思うが、「最終更新」は更新内容をアップロードしたタイミング。

この場合は「2/10」。

よって、

アップロード日 : 2/10
ストア公開日 : 2/11

となり、この2つの差の所要日数の「1日間」が審査日数に近いはず。

Playストアのアプリのキャッシュの影響などもあるのだが、頻繁に手動でアプリ更新をしていれば精度は上がる。

まあ、機種、OSバージョン別パッケージなどの話はあるが、全体的な雰囲気は分かる。

 

まとめ

上の表を眺めていると、アプリのカテゴリーで審査のスピードが違うような、なんとなくだが。

SNS、動画、音楽、ライブ配信
→ 3日以内

それ以外は大体1週間前後。


しかし、私のアプリはなぜそんなに時間がかかったのか。

ゴミアプリだからですか、すいません。