Make sure to set all 3 of these exactly the same. I am using jdk8 (aka 1.8) which comes default shipped with Android Studio 4.0.0. It is also recommended to use this exact version of studio in the official 4.27 docs. I have not test a higher java version than 8 so I wouldnât recommend it:
Keep everything the same (including compile version 33), just change the target version to 34.
Note: It is recommended and advised that the compile version is not set lower than the target version. But Iâm glad it works fine for this version on my project.
Otherwise you might get this error while uploading to playstore:
You uploaded an APK or Android App Bundle which has an activity, activity alias, service or broadcast receiver with intent filter, but without 'android:exported' property set.
You can also manually add this tag in the manifest through an editor like android studio after the build, useful in case a old plugin which you donât have access to isnât using this tag.
If this works, it would be amazing!!! im going to test this out over the next few days and get back to you. Should this work with engine version 4.26? Also, would the save files/storage permissions work? Thanks!
Havenât tested with 4.26 but works perfect for 4.27.2.
Although I havenât mentioned this in the post, but you might not want to have anything higher than version 8.0 installed for âAndroid SDK Command line Toolsâ since it was recently causing problems for me in Unreal Engine 5. This might not cause any issues on UE4 but just in case.
Sorry, I donât quite understand what you mean by âfiles/storage permissionsâ. Are you talking about the 'MANAGE_EXTERNAL_STORAGE' manifest permission that is often required to deploy directly on android device without issues ? Then yes, this shouldnât make any difference. Just try.
I did everything in this content after that i can build my game but when i want to run on my Android device; i canât install the APK file? Iâm using UE4
To link with sdk34, you actually need to compile with sdk 33 (Not sure if its a bug or not)
You should modify UEDeployAndroid.cs to make string CompileSDKVersion = â33â, either this hard coded way. Or make a new ini in Default Engine.ini [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] to set this a compile skd version, and read it in C# code.
I could packaged the APK-file according to your instructions. But now I have a problem to install this APK on my device , neither via Batch-File install, nor manually from Device Storage. When I try to install any of packages, I receive these errors:
From the adb error, it seems like one or more of your activities/services or broadcast receivers declared in the manifest file are using intent filters and have not explicitly defined the tag android:exported="true". Since you are on android 13, this could certainly be the issue.
Unfortunately the âandroid:exportedâ playstore error persists for my 4.27 project⌠Do you think i should edit some other parameter? I ve done all the steps you mention above⌠Maybe the grandle or cmake version plays some role? Which one did you use? You kept the old android studio? which version? I ve ran out of ideas⌠I didnât have any luck for sdk 33 or 34âŚ
total corruption for my game, had to reinstall 4.27⌠I think itâs the perfect time to kill myself struggling with this android:exported=true thing so many days, having tried all proposed solutions⌠maybe i will remake the game with ue5
I can build up the app and supply it to Google Play Console without issues.
Tried testing on mobile phones through the internal testing. The app installs, but it crashes as soon as you tap to open.
This is the error log I am getting. It is probably something with the java version, but Iâm on the JDK 1.8 as per all the tutorials and answers.
The project is built with 4.26 and I cannot update to newer. I successfully built and published on AppStore for iOS.
Any ideas and help would be awesome. Thanks!
Error log from the phone, tried Android 13 and 14 on Xiaomi. On both, the version I published last year works fine without troubles.
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of âjava.lang.invoke.LambdaMetafactoryâ appears in /apex/com.android.art/javalib/core-oj.jar)
at b.b.a.a.i.z.h.n.(Unknown Source:31)
at b.b.a.a.i.z.h.f.c(Unknown Source:0)
at b.b.a.a.i.z.h.i.c(Unknown Source:0)
at b.b.a.a.i.z.h.i.b(Unknown Source:0)
at b.b.a.a.i.z.h.i.get(Unknown Source:0)
at b.b.a.a.i.z.h.o.b(Unknown Source:18)
at b.b.a.a.i.z.h.o.get(Unknown Source:0)
at b.b.a.a.i.z.h.m.b(Unknown Source:24)
at b.b.a.a.i.z.h.m.get(Unknown Source:0)
at b.b.a.a.i.v.a.a.get(Unknown Source:15)
at b.b.a.a.i.z.g.b(Unknown Source:10)
at b.b.a.a.i.z.g.get(Unknown Source:0)
at b.b.a.a.i.z.b.b(Unknown Source:18)
at b.b.a.a.i.z.b.get(Unknown Source:0)
at b.b.a.a.i.u.b(Unknown Source:18)
at b.b.a.a.i.u.get(Unknown Source:0)
at b.b.a.a.i.v.a.a.get(Unknown Source:15)
at b.b.a.a.i.e.o(Unknown Source:2)
at b.b.a.a.i.s.c(Unknown Source:4)
at com.google.firebase.datatransport.TransportRegistrar.lambda$getComponents$0(Unknown Source:11)
at com.google.firebase.datatransport.TransportRegistrar$$Lambda$1.create(Unknown Source:0)
at com.google.firebase.components.ComponentRuntime.lambda$new$0(Unknown Source:9)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get(Unknown Source:4)
at com.google.firebase.components.Lazy.get(Unknown Source:15)
at com.google.firebase.components.AbstractComponentContainer.get(Unknown Source:8)
at com.google.firebase.components.ComponentRuntime.get(Unknown Source:0)
at com.google.firebase.components.RestrictedComponentContainer.get(Unknown Source:10)
at com.google.firebase.messaging.FirebaseMessagingRegistrar.lambda$getComponents$0$FirebaseMessagingRegistrar(Unknown Source:43)
at com.google.firebase.messaging.FirebaseMessagingRegistrar$$Lambda$0.create(Unknown Source:0)
at com.google.firebase.components.ComponentRuntime.lambda$new$0(Unknown Source:9)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get(Unknown Source:4)
at com.google.firebase.components.Lazy.get(Unknown Source:15)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(Unknown Source:48)
at com.google.firebase.FirebaseApp.initializeAllApis(Unknown Source:72)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:73)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:2)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:35)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2468)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2433)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:3)
at android.app.ActivityThread.installProvider(ActivityThread.java:7823)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7334)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7067)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2212)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8252)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)