Androidアプリを開発していますが、アプリをリリースモードで実行すると問題が発生します。アプリをデバッグモードで起動すると、Logcatに次のタイプのメッセージが表示されます(アプリは起動しません)。
E / AndroidRuntime:致命的な例外:GoogleApiHandlerプロセス:it.planner、PID:27326 java.lang.SecurityException:モックモード機能アプリを使用するには、開発者設定でモックロケーションアプリケーションとしてit.plannerを選択する必要があります。android.os.Parcel.readException(Parcel.java:2008)at android.os.Parcel.readException(Parcel.java:1954)at com.google.android.gms.internal.zzeu.zzb(不明なソース:10) com.google.android.gms.internal.zzcfa.zzbj(不明なソース:9)at 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。
明らかに、開発者向けオプションでモックの場所を選択すると、アプリが起動して正常に動作します。
リリースapkをインストールしてアプリを起動しようとすると、アプリが起動せず、Logcatでこの種のメッセージが表示されます。
E / AndroidRuntime:致命的な例外:メインプロセス:it.planner、PID:29448 java.lang.IllegalStateException:android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2054)のonSaveInstanceStateの後にこのアクションを実行できませんandroid.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678)のandroid.support.v4.app.BackStackRecord.commit(のandroid.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2077) BackStackRecord.java:632)at it.planner.Home.mainMenu(Home.java:374)at it.planner.Home.computeGeolocation(Home.java:487)at it..planner.Home.access $ 100(Home.java :80)at it.planner.Home $ 3 $ 1.onLocationResult(Home.java:344)at com.google.android.gms.internal.zzcff.zzu(Unknown Source:4)at com.google.android.gms.common com.google.android.gms.commonの.api.internal.zzci.zzb(不明なソース:8)。api.internal.zzcj.handleMessage(Unknown Source:16)at android.os.Handler.dispatchMessage(Handler.java:109)at android.os.Looper.loop(Looper.java:166)atandroid.app.ActivityThread。 main(ActivityThread.java:7377)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:469)atcom.android.internal。 os.ZygoteInit.main(ZygoteInit.java:963)
アプリがリリースモードになると、モックの場所を選択する可能性がないため、起動したくありません。私はこの問題に何日も取り組んできました。GradleファイルでminifyEnabledfalseを試してみましたが、機能しません。
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();
さらにいくつかの議論はここにあります:https://github.com/OneBusAway/onebusaway-android/issues/529#issuecomment-224974339
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加