Unityのプレビューでは動作していたのに、Androidスマホだと実行時エラーになったので
その対処法。
️環境
macOS 14.4.1
Unity6
スマホ(Android14)
️エラー内容
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
️原因
AdMobの設定に不足があるっぽい。
️対処法
@GoogleMobileAdsDependencies.xmlに追記
==== 追記する箇所 ====
<androidPackage spec="androidx.lifecycle:lifecycle-process:2.7.0">
<repositories>
<repository>https://maven.google.com/</repository>
</repositories>
</androidPackage>
================
AUnityで対応OSAndroid14(API34)以上に設定
BUnityで設定を反映
Asset > External Dependency Manager > Android Resolver > Force Resolve
️参考
https://github.com/googleads/googleads-mobile-unity/issues/2645
2024年07月01日
[Unity] Android実機で実行時エラー(ClassNotFoundException: androidx.lifecycle.ProcessLifecycleOwner)
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
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
を上書きしました。
エラーが出た。
はじめは、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
----------------------------------
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
ここのバージョンを使います。
参考:
http://woshidan.hatenadiary.jp/entry/2015/09/28/233823
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
ここのバージョンを使います。
参考:
http://woshidan.hatenadiary.jp/entry/2015/09/28/233823
posted by be-style at 15:21| Comment(0)
| Android