AndroidRuntime造成原因:java.lang.ClassNotFoundException:未找到类“ android.support.multidex.MultiDexApplication”

时间:2019-07-12 11:14:27

标签: c# android xamarin.forms

我在以发布模式启动应用程序时遇到问题。

我已为“调试”和“发布”模式启用了MultiDex。在Debug模式下进行部署时,我的应用程序运行正常,一切正常。但是当我启动它的发布模式时,它在启动时崩溃。这是设备日志:

error

Android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
android:versionName="17.2" android:versionCode="1" 
android:installLocation="auto" package="com.myapp">
  <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application android:label="Test Application" android:largeHeap="true" android:icon="@drawable/AppIcon" android:supportsRtl="true">
        <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true">
        <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
    </provider>
    </application>
</manifest>

1 个答案:

答案 0 :(得分:0)

使您的应用程序扩展MultiDexApplication。如果还没有,请像下面这样创建一个BaseApplication类:

public class BaseApplication extends MultiDexApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

}

另外,将以下内容添加到您的build.gradle中:

multiDexEnabled true

您的依赖项:

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
}

或者如果不使用AndroidX

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

最后在清单中添加应用标记:

android:name="android.support.multidex.MultiDexApplication"

android:name="androidx.multidex.MultiDexApplication"

如果您已迁移到AndroidX