InstantiationException仅在发布apk中

时间:2018-03-29 04:46:02

标签: android

应用程序在启动时崩溃。 Debug apk工作正常但发布apk正面临这个问题。有人可以帮忙吗?

03-29 10:22:55.725 31420-31420/np.com.drac.ghtweather E/AndroidRuntime: FATAL EXCEPTION: main
    Process: np.com.drac.ghtweather, PID: 31420
    java.lang.RuntimeException: Unable to instantiate application np.com.drac.ghtweather.GHTapp: java.lang.InstantiationException: java.lang.Class<np.com.drac.ghtweather.GHTapp> cannot be instantiated
        at android.app.LoadedApk.makeApplication(LoadedApk.java:977)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6030)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.InstantiationException: java.lang.Class<np.com.drac.ghtweather.GHTapp> cannot be instantiated
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1108)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1093)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:971)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6030) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6938) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

2 个答案:

答案 0 :(得分:0)

要在较新的Android工作室版本中构建release apk,首先禁用即时运行然后选择 “构建” - &gt;“构建APK(s)”选项,然后构建您的apk以使其正常运行。

这是构建apk的正确方法。试试这个,让我知道它是否有效。 执行此操作后,android studio会提示您指向apk的文件位置的链接。

答案 1 :(得分:0)

检查发布模式

 if( BuildConfig.BUILD_TYPE.equalsIgnoreCase("release")) {

 }

检查调试模式

 if( BuildConfig.BUILD_TYPE.equalsIgnoreCase("debug")) {

 }

检查你的menifest xml

 <application
        android:debuggable="true"
        android:name=".YourApplication"
        android:allowBackup="true"
        android:icon="@mipmap/your_icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"/>

  buildTypes {
    release {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
   'proguard-rules.pro'
        }
    }
    }

尝试此代码我遇到了同样的问题,这是我解决问题的解决方案,希望对您有所帮助。