首页 > 解决方案 > 应用程序在发布时崩溃,无法从 google play 获取堆栈跟踪

问题描述

因此,我的应用程序 apk 在调试时运行良好,一旦我将其发布,我的应用程序就可以安装,但在打开应用程序时会立即崩溃。我无法使用堆栈跟踪找到错误,因为谷歌播放只在我的崩溃选项卡下给我这样的东西,

pid: 0, tid: 0 >>> myapp.mobile.app <<<

backtrace:
  #00  pc 000000000001cd66  /system/lib/libc.so (abort+58)
  #01  pc 000000000005b861  /data/app/myapp.mobile.app-NMGEC5MygxTSkiehEoUA7A==/lib/arm/libflutter.so
  #02  pc 000000000004ff59  /data/app/myapp.mobile.app-NMGEC5MygxTSkiehEoUA7A==/lib/arm/libflutter.so (JNI_OnLoad+72)
  #03  pc 0000000000234d79  /system/lib/libart.so (art::JavaVMExt::LoadNativeLibrary(_JNIEnv*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, _jobject*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*)+2324)
  #04  pc 0000000000002f5b  /system/lib/libopenjdkjvm.so (JVM_NativeLoad+230)
  #05  pc 000000000010c733  /system/framework/arm/boot.oat (java.lang.Runtime.nativeLoad [DEDUPED]+130)
  #06  pc 000000000016708b  /system/framework/arm/boot.oat (java.lang.Runtime.loadLibrary0+146)
  #07  pc 000000000016b94f  /system/framework/arm/boot.oat (java.lang.System.loadLibrary+86)
  #08  pc 000000000040d575  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #09  pc 00000000003e6c7b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
  #10  pc 00000000000a1027  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
  #11  pc 00000000001e5ae9  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
  #12  pc 00000000001e05d7  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
  #13  pc 00000000003e27af  /system/lib/libart.so (MterpInvokeStatic+130)
  #14  pc 0000000000400494  /system/lib/libart.so (ExecuteMterpImpl+14612)
  #15  pc 0000000000008ed4  /data/app/myapp.mobile.app-NMGEC5MygxTSkiehEoUA7A==/oat/arm/base.vdex (io.flutter.view.FlutterMain.a+80)
  #16  pc 00000000001c4d53  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2471763592+378)
  #17  pc 00000000001c9439  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152)
  #18  pc 00000000001e05bf  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790)
  #19  pc 00000000003e27af  /system/lib/libart.so (MterpInvokeStatic+130)
  #20  pc 0000000000400494  /system/lib/libart.so (ExecuteMterpImpl+14612)
  #21  pc 0000000000008e6a  /data/app/myapp.mobile.app-NMGEC5MygxTSkiehEoUA7A==/oat/arm/base.vdex (io.flutter.view.FlutterMain.a+10)
  #22  pc 00000000001c4d53  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2471763592+378)
  #23  pc 00000000001c937f  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
  #24  pc 00000000003d52b9  /system/lib/libart.so (artQuickToInterpreterBridge+880)
  #25  pc 0000000000411aff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
  #26  pc 000000000040d575  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #27  pc 00000000003e6c7b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
  #28  pc 00000000000a1027  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
  #29  pc 00000000001e5ae9  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
  #30  pc 00000000001e05d7  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
  #31  pc 00000000003e27af  /system/lib/libart.so (MterpInvokeStatic+130)
  #32  pc 0000000000400494  /system/lib/libart.so (ExecuteMterpImpl+14612)
  #33  pc 0000000000007b8a  /data/app/myapp.mobile.app-NMGEC5MygxTSkiehEoUA7A==/oat/arm/base.vdex (io.flutter.app.FlutterApplication.onCreate+6)
  #34  pc 00000000001c4d53  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2471763592+378)
  #35  pc 00000000001c937f  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
  #36  pc 00000000003d52b9  /system/lib/libart.so (artQuickToInterpreterBridge+880)
  #37  pc 0000000000411aff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
  #38  pc 000000000067a899  /system/framework/arm/boot-framework.oat (android.app.Instrumentation.callApplicationOnCreate+40)
  #39  pc 000000000075a4bb  /system/framework/arm/boot-framework.oat (android.app.ActivityThread.handleBindApplication+6626)
  #40  pc 0000000000756435  /system/framework/arm/boot-framework.oat (android.app.ActivityThread$H.handleMessage+5788)
  #41  pc 000000000090e329  /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+136)
  #42  pc 0000000000910a23  /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1162)
  #43  pc 000000000075f6b3  /system/framework/arm/boot-framework.oat (android.app.ActivityThread.main+674)
  #44  pc 000000000040d575  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #45  pc 00000000003e6c7b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
  #46  pc 00000000000a1027  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
  #47  pc 0000000000347ac5  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
  #48  pc 0000000000348f15  /system/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+1024)
  #49  pc 00000000002fb0c5  /system/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+40)
  #50  pc 000000000011226f  /system/framework/arm/boot.oat (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+110)
  #51  pc 0000000000a0a56b  /system/framework/arm/boot-framework.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+114)
  #52  pc 0000000000a10455  /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2836)
  #53  pc 000000000040d575  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #54  pc 00000000003e6c7b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
  #55  pc 00000000000a1027  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
  #56  pc 0000000000347ac5  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
  #57  pc 00000000003478ef  /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+310)
  #58  pc 000000000028eb11  /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+444)
  #59  pc 000000000006c93b  /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+30)
  #60  pc 000000000006eb93  /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+458)
  #61  pc 0000000000001989  /system/bin/app_process32 (main+728)
  #62  pc 000000000008ae6d  /system/lib/libc.so (__libc_init+48)
  #63  pc 000000000000166f  /system/bin/app_process32 (_start_main+38)
  #64  pc 0000000000000306  <anonymous>

这对我来说没有任何意义,我从这里https://flutter.io/android-release/遵循部署的指示,并试图一遍又一遍地找出发布的问题。

我将向您介绍我采取的非显而易见的步骤,希望我能找到我的应用程序崩溃的原因

  1. 如果应用程序不需要互联网,请删除 android.permission.INTERNET;

    • 我把它留在里面是因为我的应用上有一个链接,我希望人们点击它并被引导到浏览器;否则这个应用程序根本不需要互联网连接,并且应该能够在没有互联网的情况下运行。我不知道我是否必须保留这个,所以我保留了它。
  2. minSdkVersion 和 targetSdkVersion 的版本控制。

    • 我不太确定在这里做什么。我在 android studio 上的 SDK 包括 oreo(27) 和 28,所以我将最小值设置为 16,目标设置为 28,并将 compileSDK 设置为 28。
  3. 保护规则

    • 我有一个用于 sqlite 的颤振插件,它是“package:sqflite/sqflite.dart”,并且想知道这些规则是否会包括我拥有的 sqlite 颤振插件(看起来确实如此)

我的 proguard-rules.pro 中有这个

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

我没有 android 设备来为自己查看崩溃,我使用 google play 的每个模拟器(nexus 5、api 27、android 8.1)和一个使用 api 28 的模拟器都说该应用程序与设备不兼容谷歌游戏商店。所以我无法在我的模拟器中重新创建它。

它在我所有运行 android 9 的测试手机上都崩溃了

如果您对它为什么崩溃有任何意义,请告诉我,如果不是,我怎样才能获得崩溃的堆栈跟踪,以便我可以继续找出为什么会发生这种情况。

如果您需要查看我的文件,请发表评论,谢谢

build.gradle(仅限安卓)

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "myapp.mobile.app"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 3
        versionName "Beta."
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

标签: androidgoogle-playflutter

解决方案


推荐阅读