タブレット用プログラムの書き止め

android OS & iPadOS の記録。

グレードUP前のプロジェクトがビルドできない。

2023-03-19 03:54:30 | Android studio 日記

何とか以前のビュワープロジェクトがビルドできるようになったよ~。

複数の問題により良く分からない現象でした。
1.IDE メモリヒープ不足でエミュレーターが起動せずビルドできない。
2.build.gradle の implementation 設定の問題でメッセージ出て止まる。
3.ADV関係のデータファイルの問題でエラーで止まる。

あ~めんどくさっ!

 

対応は、

<1>メモリ容量を増やす。

File - Settings - Appearance & Behavior - System Settings -Memory Settings [ IDE max heap size: ]

 

//////// 追記 2023.3.20

翌日、作業再開でビルドしたら止まった。
Error while waiting for device: The emulator process for AVD has terminated.
ヒープサイズ確認、最大。
原因が分からないのでADVを他の設定にして、また元に戻してビルド実行。
3番と同じメッセージが出てストップ。*.lock を削除してビルドしたらエミュレーターは動きました。意味わからん。

構成ファイルの記述に問題があるのかも。
あと、デベロッパーのIDE設定説明を見ていないので確認してみる。

//////// 追記終わり

 

<2>取り合えず、こんなんが表示されたら

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)

以下をbuild.gradle に書き足す。数字は適当に変える?
dependencies {
    constraints {
        implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
            because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
        }
        implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
            because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
        }
    }
}

私はそのまま書いたらメッセージは消えたけど。
他にも方法があるので良いものを実行する。
コトリン使ってないんだけどね。何かあるらしいよ~。

追記:
この場所 Project Structure - Dependencies -  に
  org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0
  org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0
が居た。諸悪の根源。
テンプレートプロジェクトには入ってないので、何かしらのダウンロードで組み込まれてしまうようです。どっちか消して良いのかな~。後で消去テストしてみる。

 

<3>*.lock を削除する。フォルダとファイルがありました。

ビルドしたら以下のエラーが出ました。翻訳したらファイルを消してという事だったので指示に従う。

Error while waiting for device: 10.1  WXGA (Tablet) API 17 is already running. If that is not the case, delete D:\Users\dell_\.android\avd\10.1_WXGA_Tablet_API_17_1.avd\*.lock and try again.

デバイスの待機中にエラーが発生しました: 10.1 WXGA (タブレット) API 17 は既に実行されています。 そうでない場合は、D:\Users\dell_\.android\avd\10.1_WXGA_Tablet_API_17_1.avd\*.lock を削除して、もう一度お試しください。

 

前も gradle up したら動かなくなったんだよね~。
その時は全然分からなくて空プロジェクトを作ってJAVAファイルのコードを手作業でコピー&ペースト……。今回はなんか動いた^^;

別件だけど、デベロッパーにViewModelの一部が非推奨になったって告知されてた。ビュワーはそれ使ってるんだよね~。それも赤字表示だったし、代わりが見つからないしフォーストラブルだった。ViewModelはまた後で。