我需要了解如何从 C++ 端处理我用 Vulkan 编写的图形应用程序的触摸事件。
但是,当构建并尝试运行此示例时
https://github.com/android/ndk-samples/tree/main/native-activity
应用程序不会启动并退出,出现以下异常:
2023-08-31 16:41:54.034 30823-30823/com.example.native_activity E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.native_activity, PID: 30823
java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/~~nm1QPyiOSe1QJMjxiB2Lxw==/com.example.native_activity-CIsNQYJ7K-5YYyMZr7Y73g==/lib/arm64, /data/app/~~nm1QPyiOSe1QJMjxiB2Lxw==/com.example.native_activity-CIsNQYJ7K-5YYyMZr7Y73g==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
at android.app.ActivityThread.installProvider(ActivityThread.java:8328)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7828)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7577)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2400)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/~~nm1QPyiOSe1QJMjxiB2Lxw==/com.example.native_activity-CIsNQYJ7K-5YYyMZr7Y73g==/lib/arm64, /data/app/~~nm1QPyiOSe1QJMjxiB2Lxw==/com.example.native_activity-CIsNQYJ7K-5YYyMZr7Y73g==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
有人知道如何通过这个吗?
这是我正在使用的android studio:
Android Studio Electric Eel | 2022.1.1 Patch 2
Build #AI-221.6008.13.2211.9619390, built on February 16, 2023
Runtime version: 11.0.15+0-b2043.56-9505619 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1792M
Cores: 16
Registry:
external.system.auto.import.disabled=true
ide.text.editor.with.preview.show.floating.toolbar=false
cidr.max.intellisense.file.length=1000000
Non-Bundled Plugins:
com.intellij.plugins.visualstudiokeymap (221.6008.15)
GLSL (1.21)
谢谢你!
这个问题花了很长时间才解决。但答案来自谷歌论坛。
从 AndroidManifest.xml 文件中删除以下行
android:hasCode="false"
然后就可以了。