安装在设备上后,签名的APK崩溃

时间:2019-01-27 05:54:52

标签: intellij-idea crash flutter apk signed

完成flutter应用程序后,在ADB设备上运行没有问题,没有Flutter Doctor问题,生成了已签名的APK,然后将其安装到设备上,然后再上传到Google Play。 在设备上安装了应用程序,单击以打开设备上的应用程序,得到“不幸的是,该应用程序已停止工作。”撞在墙上的头。

我为解决在尝试构建带符号的APK时出现错误的问题所做的操作: 修复了所有构建问题(找不到AndroidManifest,无法读取@string属性,android:configChanges东西,定向到项目结构中的MainActivity文件,在项目结构“问题”选项卡中下载了依赖项;已修复)。应用程序确实生成了0个错误。

在生成签名的APK之前,先使用Flutter Clean(工具,Flutter)和Code Cleanup(在“ Analyze”标签下)清理项目。

有关此主题的其他stackoverflow问题,但未解决此问题: Why my signed apk crashes? Why my signed apk crashes?

我在互联网上搜寻了好几天,发现自己的额头仍然反复地从坚固的墙壁上反弹,这表明没有迹象表明很快就会出现任何结构性故障。

我不知道共享代码的哪一部分,因为我不知道翻转问题是什么。当您在IntelliJ中创建新应用时,我用flutter创建的默认应用重新创建了问题。因此,即使是没有新代码的默认应用,安装后签名的APK崩溃也会产生同样的问题。

另一个奇怪的事情是:该应用程序在设备上安装时约为54 mB。神圣的霍勒林式烈火正在发生什么? APK约为7 mB。

这是logcat:

  

---------崩溃开始   01-25 22:30:48.093 27488-27488 /? E / AndroidRuntime:致命异常:main       流程:com.example.nothing2,PID:27488       java.lang.RuntimeException:无法实例化活动ComponentInfo {com.example.nothing2 / com.example.nothing2.MainActivity}:java.lang.ClassNotFoundException:在路径中未找到类“ com.example.nothing2.MainActivity”: DexPathList [[zip文件“ /data/app/com.example.nothing2-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.nothing2-1/lib/arm,/ data / app / com.example.nothing2-1 / base.apk!/ lib / armeabi-v7a,/ vendor / lib,/ system / lib]]           在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345)           在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2500)           在android.app.ActivityThread.access $ 900(ActivityThread.java:163)           在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1362)           在android.os.Handler.dispatchMessage(Handler.java:102)           在android.os.Looper.loop(Looper.java:148)           在android.app.ActivityThread.main(ActivityThread.java:5585)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:730)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)        原因:java.lang.ClassNotFoundException:在路径:DexPathList [[zip文件“ /data/app/com.example.nothing2-1/base.apk”]上找不到类“ com.example.nothing2.MainActivity” ,nativeLibraryDirectories = [/ data / app / com.example.nothing2-1 / lib / arm,/ data / app / com.example.nothing2-1 / base.apk!/ lib / armeabi-v7a,/ vendor / lib, / system / lib]]           在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)           在java.lang.ClassLoader.loadClass(ClassLoader.java:511)           在java.lang.ClassLoader.loadClass(ClassLoader.java:469)           在android.app.Instrumentation.newActivity(Instrumentation.java:1068)           在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2335)           在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2500)           在android.app.ActivityThread.access $ 900(ActivityThread.java:163)           在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1362)           在android.os.Handler.dispatchMessage(Handler.java:102)           在android.os.Looper.loop(Looper.java:148)           在android.app.ActivityThread.main(ActivityThread.java:5585)           在java.lang.reflect.Method.invoke(本机方法)           在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:730)           在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)           禁止:java.lang.ClassNotFoundException:com.example.nothing2.MainActivity           在java.lang.Class.classForName(本机方法)           在java.lang.BootClassLoader.findClass(ClassLoader.java:781)           在java.lang.BootClassLoader.loadClass(ClassLoader.java:841)           在java.lang.ClassLoader.loadClass(ClassLoader.java:504)                   ...另外12个        原因:java.lang.NoClassDefFoundError:使用引导类加载器找不到类;没有可用的堆栈跟踪   01-25 22:30:48.099 1200-3616 /? W / ActivityManager:强制完成活动com.example.nothing2 / .MainActivity   01-25 22:30:48.126 1200-27502 /? W / DropBoxManagerService:删除:data_app_crash(2388> 0个字节)

app / build.gradle源代码:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 27

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.nothing2"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

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

0 个答案:

没有答案