2024年07月01日

[Unity] Android実機で実行時エラー(ClassNotFoundException: androidx.lifecycle.ProcessLifecycleOwner)

Unityのプレビューでは動作していたのに、Androidスマホだと実行時エラーになったので
その対処法。

大丸2️環境
macOS 14.4.1
Unity6
スマホ(Android14)

大丸2️エラー内容
FATAL EXCEPTION: main
Process: com.jpn.bestyle.guchi, PID: 17487
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ProcessLifecycleOwner;
at com.google.unity.ads.UnityAppStateEventNotifier$1.run(UnityAppStateEventNotifier.java:51)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8501)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
Caused by: java.lang.ClassNotFoundException: androidx.lifecycle.ProcessLifecycleOwner
... 9 more

大丸2️原因
AdMobの設定に不足があるっぽい。

大丸2️対処法
@GoogleMobileAdsDependencies.xmlに追記
20240701_01.png
==== 追記する箇所 ====
<androidPackage spec="androidx.lifecycle:lifecycle-process:2.7.0">
<repositories>
<repository>https://maven.google.com/</repository>
</repositories>
</androidPackage>
================

AUnityで対応OSAndroid14(API34)以上に設定
20240701_02.png

BUnityで設定を反映
Asset > External Dependency Manager > Android Resolver > Force Resolve

大丸2️参考
https://github.com/googleads/googleads-mobile-unity/issues/2645
タグ:android 実機 UNITY
posted by be-style at 21:49| Comment(0) | Android

2017年03月21日

[Unity] ゆるくやせる (Android)をリリースしました!

iOS版としてリリースしていた「ゆるくやせる」というダイエット支援アプリの
Android版がリリースされました!

iOS版ではネイティブの機能であるピッカーとかアラートを使っていたのですが、
今回、両OSに対応させるためにUnityですべて実現させました。
iOSっぽく見せるのに苦労しましたが、完成してよかったです。

ただ両OSでリリースしただけでなく、体重を記録できるようにしたり
キャラが追加されたりしています。

iOS版を紹介したときに「Android版は?」と聞かれることがあったので、
これからは胸を張って紹介できます。

よろしかったら、お試しください(>人<)

Google Play:
https://play.google.com/store/apps/details?id=com.revolabinc.yurukuyaseru&hl=ja

App Store:
https://itunes.apple.com/jp/app/%E3%82%86%E3%82%8B%E3%81%8F%E3%82%84%E3%81%9B%E3%82%8B-%E3%83%80%E3%82%A4%E3%82%A8%E3%83%83%E3%83%88/id658227970?mt=8
posted by be-style at 21:41| Comment(0) | Android

2017年03月18日

[Unity] Android Studio 2.3 にしたら、Unityのビルドエラー(CommandInvokationFailure)が出る

Android Studio 2.3 にしたら、UnityのAndroidアプリをビルドしようとすると
エラーが出た。

はじめは、JDKのパスが通っていないと思い

メニューの
Unity > Preferences > External Tools > Android JDK
を、JDK1.7 → 1.8 に修正したのだけれど、
ビルドエラーが解決しませんでした。

----------------------------------------
Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/takioka/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -
stderr[
Error:Invalid command android
]
stdout[
]
exit code: 64
----------------------------------------

そうしたら、同じ悩みを解決している人がいました!

http://qiita.com/niusounds/items/bcbeee622b2114b4016e

Android Studioをダウンロードするサイトに行って

https://developer.android.com/studio/index.html

一番下に、Androidのコマンドツール一覧があるので、対象OSのファイルをダウンロードします。

スクリーンショット

解凍すると、「tools」というディレクトリが出るので、
それをAndroidSDKの「tools」に上書き保存したら解決しました。
念のため、古いtoolsディレクトリはバックアップを取っておきましょう。

自分の場合は、AndroidSDKのパスは

/Users/[ユーザー名]/Library/Android/sdk

なので、

/Users/[ユーザー名]/Library/Android/sdk/tools

を上書きしました。
posted by be-style at 15:51| Comment(0) | Android

[Android] Android Studio 2.3 にしたら、gradle でエラー(Could not get unknown property 'assembleRelease')が出る

Android Studio 2.3 にしたら、gradle でエラーが出るようになりました。

----------------------------------
Error:(34, 0) Could not get unknown property 'assembleRelease' for project ':testapp' of type org.gradle.api.Project.
<a href="openFile:/Users/Shared/Unity/TestApp/Android/TestAppPlugin/testlib/build.gradle">Open File
----------------------------------

原因は赤字部分でした。

task TestTask(type: Copy, dependsOn: assembleRelease) {
....
....
}

これを、下記のようにするとビルドが通りました。

task TestTask(type: Copy) {
....
dependsOn 'assembleRelease'
}

参考:
http://stackoverflow.com/questions/39590549/after-update-to-android-studio-2-2-gradle-plugin-2-2-0-could-not-get-unknown
posted by be-style at 15:32| Comment(0) | Android

[Android] gradle の com.android.support:appcompat-v7: に何を書いていいのかわからない

Android Studio を使っていると、gradle を使ってビルドするときに
dependencies の compile にある「com.android.support:appcompat-v7」
にどのバージョンを書けばよいのかわからなくなるときがあります。

↓例
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'  ← どのバージョンかわからなくなる
}

そんなときは、SDKマネージャーを見るとわかります。

SDK Manager > Appearance & Behavior > System Settings > Android SDK > SDK Tools
にある
Android Support Library, rev xx.x.x

スクリーンショット 2017-03-18 15.13.56.png

ここのバージョンを使います。

参考:
http://woshidan.hatenadiary.jp/entry/2015/09/28/233823

posted by be-style at 15:21| Comment(0) | Android