Android应用程序立即崩溃“未找到类{hash} .MainApplication”[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

我将Windows升级到10.0.16299(最新),将Visual Studio升级到15.5.1(最新版)。从那时起,当我构建并运行我的Xamarin内置的Android应用程序时,应用程序立即崩溃。

不幸的是,[AppName]已停止。

无论我是否要在模拟器或连接的真实设备上运行应用程序,都会出现此问题。输出窗口显示以下错误消息:

FATAL EXCEPTION: main
Process: [AppName], PID: 16778
java.lang.RuntimeException: Unable to instantiate application md53c5f17a815ca1a4a699c7162c91a7059.MainApplication: java.lang.ClassNotFoundException: Didn't find class "md53c5f17a815ca1a4a699c7162c91a7059.MainApplication" on path: DexPathList[[zip file "/data/app/nz.HUMANiT.Frank-1/base.apk"],nativeLibraryDirectories=[/data/app/nz.HUMANiT.Frank-1/lib/arm64, /data/app/[AppName]-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
    at android.app.LoadedApk.makeApplication(LoadedApk.java:587)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4932)
    at android.app.ActivityThread.-wrap1(ActivityThread.java)
    ...
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

Caused by: java.lang.ClassNotFoundException: Didn't find class "md53c5f17a815ca1a4a699c7162c91a7059.MainApplication" on path: DexPathList[[zip file "/data/app/[AppName]-1/base.apk"],nativeLibraryDirectories=[/data/app/[AppName]-1/lib/arm64, /data/app/[AppName]-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    ...

Suppressed: java.lang.ClassNotFoundException: md53c5f17a815ca1a4a699c7162c91a7059.MainApplication
    at java.lang.Class.classForName(Native Method)
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    ...

Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

我发现暗示过去Xamarin中有漏洞;但是,解释的解决方案和修复不起作用。启用或禁用multidex也不能解决问题。

这是Xamarin中的新错误吗?任何的想法?有什么建议?

xamarin xamarin.android classnotfoundexception
1个回答
0
投票

有同样的问题。

它看起来像一个Xamarin错误:生成的AndroidManifest中的android包名称是错误的(与生成的java类中的错误相同)。

解决方法:使用“Name”属性为Android活动(以及Application类,如果有)指定包名称。

如果您的活动是:

[Activity(Label = "App1", Icon = "@drawable/icon", Theme = "@style/MainTheme", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, LaunchMode = LaunchMode.SingleTask)]
public class MainActivity : FormsAppCompatActivity {
...
}

将其更改为:

[Activity(Name = "apackagename.MainActivity", Label = "App1", Icon = "@drawable/icon", Theme = "@style/MainTheme", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, LaunchMode = LaunchMode.SingleTask)]
public class MainActivity : FormsAppCompatActivity {
...
}

这应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.