Android应用程序在调试中工作,但在发布时不工作

Android应用程序在调试中工作,但在发布时不工作,android,android-studio,android-fragments,android-gradle-plugin,Android,Android Studio,Android Fragments,Android Gradle Plugin,我正在开发一个Android应用程序,当我在发布模式下运行该应用程序时遇到了一个问题。如果我在调试模式下启动应用程序,我会在Logcat中收到此类消息(应用程序不会启动): E/AndroidRuntime:致命异常:GoogleApiHandler 流程:it.planner,PID:27326 java.lang.SecurityException:为了使用模拟模式功能,必须选择app it.planner作为模拟位置 开发人员设置中的应用程序。 在android.os.Parcel.rea

我正在开发一个Android应用程序,当我在发布模式下运行该应用程序时遇到了一个问题。如果我在调试模式下启动应用程序,我会在Logcat中收到此类消息(应用程序不会启动):

E/AndroidRuntime:致命异常:GoogleApiHandler 流程:it.planner,PID:27326 java.lang.SecurityException:为了使用模拟模式功能,必须选择app it.planner作为模拟位置 开发人员设置中的应用程序。 在android.os.Parcel.readException(Parcel.java:2008)上 在android.os.Parcel.readException(Parcel.java:1954) 在com.google.android.gms.internal.zzeu.zzb(未知来源:10) 在com.google.android.gms.internal.zzcfa.zzbj(未知来源:9) 在com.google.android.gms.internal.zzcfd.zzbj(未知来源:13) 在com.google.android.gms.internal.zzcfk.zzbj(未知来源:2) 在com.google.android.gms.internal.zzcee.zza(未知来源:4) 位于com.google.android.gms.common.api.internal.zzm.zzb(未知来源:8) 位于com.google.android.gms.common.api.internal.zzc.zza(未知来源:6) 位于com.google.android.gms.common.api.internal.zzbo.zzb(未知来源:9) 位于com.google.android.gms.common.api.internal.zzbo.zzaiw(未知 资料来源:82) 位于com.google.android.gms.common.api.internal.zzbo.onConnected(未知 资料来源:16) 位于com.google.android.gms.common.internal.zzac.onConnected(未知 资料来源:2) 访问com.google.android.gms.common.internal.zzn.zzakr(未知来源:130) 位于com.google.android.gms.common.internal.zze.zzw(未知来源:64) 位于com.google.android.gms.common.internal.zzi.zzaks(未知来源:51) 在com.google.android.gms.common.internal.zzh.handleMessage上(未知 资料来源:270) 位于android.os.Handler.dispatchMessage(Handler.java:109) 位于android.os.Looper.loop(Looper.java:166) 在android.os.HandlerThread.run(HandlerThread.java:65)E/iMonitor:FaultDetect:DUMPTOOL\u PRINTF返回

显然,如果我在开发者选项中选择模拟位置,应用程序就会启动,工作正常

如果我安装了release apk并尝试启动该应用程序,则该应用程序不会启动,我会在Logcat中收到此类消息:

E/AndroidRuntime:致命异常:主 流程:it.planner,PID:29448 java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作 位于android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2054) 位于android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2077) 位于android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678) 位于android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:632) 在it.planner.Home.main菜单(Home.java:374) 在it.planner.Home.computegeLocation(Home.java:487) at it..planner.Home.access$100(Home.java:80) 在it.planner.Home$3$1.onLocationResult(Home.java:344) 在com.google.android.gms.internal.zzcff.zzu(未知来源:4) 位于com.google.android.gms.common.api.internal.zzci.zzb(未知来源:8) 在com.google.android.gms.common.api.internal.zzcj.handleMessage上(未知 资料来源:16) 位于android.os.Handler.dispatchMessage(Handler.java:109) 位于android.os.Looper.loop(Looper.java:166) 位于android.app.ActivityThread.main(ActivityThread.java:7377) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

一旦应用程序处于发布模式,就不可能选择模拟位置,因此它不想启动。我已经处理这个问题很多天了。我还尝试在Gradle文件中使用minifyEnabled false,但不起作用

gradle文件如下所示:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            debuggable true
        }
    }
    sourceSets {
        main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] }
        debug {
            manifest.srcFile 'src/main/AndroidManifest.xml'
        }
    }

此问题可能是因为未使用适当的API提交片段事务。寻找

transaction.commit();
并将其替换为

transaction.commitAllowingStateLoss();

这里还有一些讨论:

构建.gradle是不相关的。第374行
Home.java
说了什么??