C#Xamarin Android Multi-Dex应用程序,带有一个自定义应用程序类,可在pre-Lollipop上运行

C#Xamarin Android Multi-Dex应用程序,带有一个自定义应用程序类,可在pre-Lollipop上运行,c#,android,C#,Android,我遇到了65K的限制并启用了Multidex,之后我就不再在棒棒糖前的设备上安装了。经过数小时的调试和搜索,我找到了一个解决方案 我根据已接受的答案更改了应用程序的子类,到目前为止一切正常 我最近发现,每当应用程序遇到未经处理的异常时,我都会在类中提供一些代码处理作为解决方法。因此,当我调试时,我看到它从未进入Oncreate(),我的变通方法对我的应用程序没有影响 经过一些研究,我发现Java中的android.support.multidex.multidex应用程序类可以解决我的问题。但是

我遇到了65K的限制并启用了Multidex,之后我就不再在棒棒糖前的设备上安装了。经过数小时的调试和搜索,我找到了一个解决方案

我根据已接受的答案更改了应用程序的子类,到目前为止一切正常

我最近发现,每当应用程序遇到未经处理的异常时,我都会在类中提供一些代码处理作为解决方法。因此,当我调试时,我看到它从未进入
Oncreate()
,我的变通方法对我的应用程序没有影响

经过一些研究,我发现Java中的
android.support.multidex.multidex应用程序类可以解决我的问题。但是我在我的SDK管理器中找不到类似的东西,现在我可以用任何其他方式安装它了

Xamarin是否支持此功能


还有别的办法解决这个问题吗?还是我的方向正确?

您提到的解决方案已经过时了。现在,您不需要创建自定义的multidex应用程序类来使multidex在Xamarin中工作。 另外,
android.support.multidex.MultiDexApplication
在Xamarin中不可用。以下是在项目中启用多索引的步骤

  • 在Android项目属性中,选中启用多索引
  • 创建自定义的
    multidex。将
    文件保留在Android项目中,并将构建操作设置为
    MultiDexMainDexList
  • 自动生成的multidex.keep文件()上存在来自Xamarin的错误。因此,您需要在新创建的
    multidex.keep
    文件中添加一些.class文件

    mono/MonoPackageManager.class 
    mono/MonoRuntimeProvider.class
    mono/MonoPackageManager_Resources.class
    mono/android/app/NotifyTimeZoneChanges.class
    mono/android/app/ApplicationRegistration.class
    
  • 将应用程序中需要的其他类添加到
    multidex.keep
    文件中

  • mono/MonoPackageManager.class 
    mono/MonoRuntimeProvider.class
    mono/MonoPackageManager_Resources.class
    mono/android/app/NotifyTimeZoneChanges.class
    mono/android/app/ApplicationRegistration.class
    
  • 您可能需要执行以下操作:

    - Clean project
    - Close Visual Studio
    - Delete all bin and obj folder
    - Open back your solution
    - Clean and build again
    

  • 欢迎来到StackOverflow。请拿着这本书四处看看,通读一遍,然后阅读,并提供一个答案。如果周围的人能够轻松地阅读和理解您的意思,或者问题是什么,他们可能会更愿意提供帮助:)谢谢,我找到了multidex.keep文件,但它是空的。应该是这样吗?你在哪里找到multidex.keep文件的?它应该是您自己创建的文件。您好,我在obj/(Debug | Release)/multidex.keep下找到了它,它就在您提供的链接中。我是xamarin.Android新手,我真的不知道multidex.keep文件是什么。您应该将multidex.keep文件添加到您的Android项目中,如步骤2所述。然后将步骤3中提到的项目列表放入multidex.keep文件中。