Flutter android Приложение вылетает при попытке отладки после подписания выпуска - PullRequest
0 голосов
/ 05 мая 2020

Я новичок в флаттере и создаю приложение для флаттера в рамках школьного проекта. Моя команда и я создаем выпуски ios, android и веб-приложений, и мне поручено создать и подписать мой пакет приложений для выпуска в Google Play. Я смог успешно подписать пакет и загрузить проект. Я не могу протестировать сборку релиза на эмуляторе, но это еще одна проблема, которая может быть связана.

Кстати, теперь у меня проблема с отладкой моего приложения. Перед переименованием и настройкой типа сборки проблем не было, я просто использовал идентификатор приложения по умолчанию и запускал отладчик в VScode. Мое приложение создается успешно (я думаю, потому что у меня нет ошибок), но оно не устанавливается на эмуляторе правильно. Я получаю всплывающее уведомление об эмуляции, что, к сожалению, приложение закрывается. В журналах захвата я вижу «Ожидание доступности порта обсерватории ...».

Сбросил эмулятор, прошился чистым и пересобирался. Я пробовал запустить / очистить / построить в студии android (отладка) безрезультатно.

Вот журналы захвата. Я не включил их все, поскольку кажется, что приложение строится правильно.

                   A: android:name(0x01010003)="com.google.android.gms.measurement.AppMeasurementReceiver" (Raw: "com.google.android.gms.measurement.AppMeasurementReceiver")
                   A: android:enabled(0x0101000e)=(type 0x12)0xffffffff
                   A: android:exported(0x01010010)=(type 0x12)0x0
                 E: receiver (line=177)
                   A: android:name(0x01010003)="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" (Raw: "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver")
                   A: android:permission(0x01010006)="android.permission.INSTALL_PACKAGES" (Raw: "android.permission.INSTALL_PACKAGES")
                   A: android:enabled(0x0101000e)=(type 0x12)0xffffffff
                   A: android:exported(0x01010010)=(type 0x12)0xffffffff
                   E: intent-filter (line=182)
                     E: action (line=183)
                       A: android:name(0x01010003)="com.android.vending.INSTALL_REFERRER" (Raw: "com.android.vending.INSTALL_REFERRER")
                 E: service (line=187)
                   A: android:name(0x01010003)="com.google.android.gms.measurement.AppMeasurementService" (Raw: "com.google.android.gms.measurement.AppMeasurementService")
                   A: android:enabled(0x0101000e)=(type 0x12)0xffffffff
                   A: android:exported(0x01010010)=(type 0x12)0x0
                 E: service (line=191)
                   A: android:name(0x01010003)="com.google.android.gms.measurement.AppMeasurementJobService" (Raw: "com.google.android.gms.measurement.AppMeasurementJobService")
                   A: android:permission(0x01010006)="android.permission.BIND_JOB_SERVICE" (Raw: "android.permission.BIND_JOB_SERVICE")
                   A: android:enabled(0x0101000e)=(type 0x12)0xffffffff
                   A: android:exported(0x01010010)=(type 0x12)0x0
                 E: provider (line=197)
                   A: android:name(0x01010003)="com.google.firebase.provider.FirebaseInitProvider" (Raw: "com.google.firebase.provider.FirebaseInitProvider")
                   A: android:exported(0x01010010)=(type 0x12)0x0
                   A: android:authorities(0x01010018)="com.sensationalscience.sensational_science.firebaseinitprovider" (Raw: "com.sensationalscience.sensational_science.firebaseinitprovider")
                   A: android:initOrder(0x0101001a)=(type 0x10)0x64
                 E: meta-data (line=203)
                   A: android:name(0x01010003)="com.google.android.gms.version" (Raw: "com.google.android.gms.version")
                   A: android:value(0x01010024)=@0x7f080004
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [   +6 ms] Stopping app 'app.apk' on Android SDK built for x86.
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [        ] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell am force-stop com.sensationalscience.sensational_science
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [  +44 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell pm list packages com.sensationalscience.sensational_science
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [ +215 ms] package:com.sensationalscience.sensational_science
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [   +2 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell cat /data/local/tmp/sky.com.sensationalscience.sensational_science.sha1
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [  +24 ms] 2ef7da51e6c1f4f4170671be4372471e59f61ee6
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [        ] Installing APK.
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [   +1 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe version
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [  +16 ms] Android Debug Bridge version 1.0.41
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <==            Version 29.0.6-6198805
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <==            Installed as C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [        ] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe start-server
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [{"event":"app.progress","params":{"appId":"bc8e3997-0174-4387-ae07-3b6f69cdc04d","id":"1","progressId":null,"message":"Installing build\\app\\outputs\\apk\\app.apk..."}}]
[12:19:52 PM] [FlutterRun] [Info] [Flutter] <== [  +17 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 install -t -r C:\Users\Lauren\Documents\School\467\sensational_science\build\app\outputs\apk\app.apk
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [+3493 ms] Performing Streamed Install
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <==            Success
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [{"event":"app.progress","params":{"appId":"bc8e3997-0174-4387-ae07-3b6f69cdc04d","id":"1","progressId":null,"finished":true}}]
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [   +1 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell echo -n cc0ff10c7a448e68c958b5ace7858fca4554ee4e > /data/local/tmp/sky.com.sensationalscience.sensational_science.sha1
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [  +31 ms] Android SDK built for x86 startApp
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [   +2 ms] executing: C:\Users\Lauren\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell am start -a android.intent.action.RUN -f 0x20000000 --ez enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode true --ez verify-entry-points true --ez start-paused true com.sensationalscience.sensational_science/com.sensationalscience.sensational_science.MainActivity
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [  +95 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.sensationalscience.sensational_science/.MainActivity (has extras) }
[12:19:56 PM] [FlutterRun] [Info] [Flutter] <== [        ] Waiting for observatory port to be available...
Tue May 05 2020 [12:23:20 GMT-0600 (Mountain Daylight Time)] Log file ended

Вот мой уровень приложения build.gradle. Обратите внимание на мои типы сборки. Я не уверен, что они настроены правильно. Я следил за https://flutter.dev/docs/deployment/android, но их объяснение того, как настроить типы сборки, было ограниченным.

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 plugin: 'com.google.gms.google-services' // connection to firebase 
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

 def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }
android {


    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {

        applicationId "com.sensationalscience.sensational_science"
        minSdkVersion 16
        targetSdkVersion 28
        multiDexEnabled true
        versionCode = flutterVersionCode.toInteger()
        versionName flutterVersionName
    }


//**Note in my app I have the correct key info I just replaced the information here.
    signingConfigs {
        release {
            keyAlias keystoreProperties['xx']
            keyPassword keystoreProperties['xx']
            storeFile keystoreProperties['C:\\Keystore\\xx'] ? file(keystoreProperties['xx']) : null
            storePassword keystoreProperties['xx']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }

        debug {

            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}



flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.firebase:firebase-analytics:17.2.2' // connect to firebase analytics
    implementation 'com.google.firebase:firebase-auth:19.3.0' // connect to firebase authentication
    implementation 'com.google.firebase:firebase-firestore:21.4.2' // connect to firebase coud firestore
    implementation 'com.android.support:multidex:1.0.3' // allow more than 64k methods with multidex enabling
}

Вот мой android Манифест. Мне интересно, проблема в MainActivy. Я не совсем уверен, где / что именно этот файл, и в конце журналов захвата есть ссылка на него при запуске Intent. ``

package="com.sensationalscience.sensational_science">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
     calls FlutterMain.startInitialization(this); in its onCreate method.
     In most cases you can leave this as-is, but you if you want to provide
     additional functionality it is fine to subclass or reimplement
     FlutterApplication and put your custom class here. -->
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="sensational_science"
    android:icon="@mipmap/ic_launcher">
    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">

        <!-- Specifies an Android theme to apply to this Activity as soon as
             the Android process has started. This theme is visible to the user
             while the Flutter UI initializes. After that, this theme continues
             to determine the Window background behind the Flutter UI. -->
        <meta-data
          android:name="io.flutter.embedding.android.NormalTheme"
          android:resource="@style/NormalTheme"
          />
        <!-- Displays an Android View that continues showing the launch screen
             Drawable until Flutter paints its first frame, then this splash
             screen fades out. A splash screen is useful to avoid any visual
             gap between the end of Android's launch screen and the painting of
             Flutter's first frame. -->
        <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/launch_background"
          />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <!-- Add UCrop Activity for image cropping (MPJ 4/21/20)-->
    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

    <!-- Don't delete the meta-data below.
         This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>

Вот мой build.gradle. Я получаю эту ошибку. Не удалось выполнить поэтапную сборку с использованием распределения Gradle «https://services.gradle.org/distributions/gradle-5.6.2-all.zip». Невозможно запустить процесс демона. Эта проблема может быть вызвана неправильной настройкой демона. Например, используется нераспознанный параметр jvm. Обратитесь к главе Руководства пользователя по демону https://docs.gradle.org/5.6.2/userguide/gradle_daemon.html

Командная строка процесса: C: \ Program Files (x86) \ Java \ jdk1.8.0_172 \ bin \ java .exe -Xmx1536M -Dfile.encoding = utf8 -Duser.country = US -Duser.language = en -Duser.variant -cp C: \ Users \ Lauren.gradle \ wrapper \ dists \ gradle-5.6. 2-all \ 9st6wgf78h16so49nn74lgtbb \ gradle-5.6.2 \ lib \ gradle-launcher-5.6.2.jar org.gradle.launcher.daemon. bootstrap .GradleDaemon 5.6.2 Чтобы узнать больше, прочтите следующие выходные данные процесса: Произошла ошибка во время инициализации ВМ. Не удалось зарезервировать достаточно места для кучи объектов 1572864 КБ. Java (0)

       buildscript {
            ext.kotlin_version = '1.3.50'
            repositories {
                google()
                jcenter()
            }

            dependencies {
                classpath 'com.android.tools.build:gradle:3.5.0'
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
                classpath 'com.google.gms:google-services:4.3.3' // for connecting to firebase
            }
        }

        allprojects {
            repositories {
                google()
                jcenter()
            }
        }

        rootProject.buildDir = '../build'
        subprojects {
            project.buildDir = "${rootProject.buildDir}/${project.name}"
        }
        subprojects {
            project.evaluationDependsOn(':app')
        }

        task clean(type: Delete) {
            delete rootProject.buildDir
        }

изменить: я добавил в журналы захвата

изменить: добавить android studio cra sh детали:

  --------- beginning of crash
2020-05-05 13:37:49.148 13524-13524/com.sensationalscience.sensational_science E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sensationalscience.sensational_science, PID: 13524
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sensationalscience.sensational_science/com.sensationalscience.sensational_science.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.sensationalscience.sensational_science.MainActivity" on path: DexPathList[[zip file "/data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/lib/x86, /data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2718)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sensationalscience.sensational_science.MainActivity" on path: DexPathList[[zip file "/data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/lib/x86, /data/app/com.sensationalscience.sensational_science-TWyC0kIWuswGoy1G-VAtCQ==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1173)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6541) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

1 Ответ

0 голосов
/ 06 мая 2020

Я решил проблему. Когда я изменил имя / идентификатор приложения, я случайно изменил имя класса MainActivity. java. Я изменил название класса на MainActivity с Sensational Science.

package com.sensationalscience.sensational_science

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...