安卓应用程序启动缓慢,但在缓慢启动后正常运行。

3
我更新了我的Android应用程序代码,包括:
  • ActiveAndroid
  • TargetsdkVersion 22(现在具有一些Material Design元素)
  • MinSdkVersion 9(这也是我早期版本的要求)
  • Google Analytics v4,属于Google Play服务的一部分
我的早期版本是在Eclipse中创建的,这次更新我使用Android Studio工作。导入失败,所以我在Android Studio中重新创建了项目。主要部分似乎工作正常。
但是当应用程序第一次启动时,会很慢。在主屏幕显示之前,需要大约1.5秒钟的时间来查看白色屏幕。之后,应用程序工作正常且快速。
重新启动它时,如果将应用程序保留在内存中,则立即启动。如果将应用程序从内存中移除,则需要另外1.5秒钟(/2秒)才能启动。
我在我的Nexus 7(2013年版)和FairPhone(Android 4.2.2)上进行了测试。我不明白问题出在哪里,也许你可以帮助我解决。找到解决方案将是很好的,但即使指出原因也将非常有帮助。
App.java的相关代码(扩展应用程序):
@Override
public void onCreate() {
    super.onCreate();
    mContext = this;

    Log.v("App","onCreate App - before GoogleAnalytics.getInstance(this)");

    analytics = GoogleAnalytics.getInstance(this);
    analytics.setLocalDispatchPeriod(1800); // every 30 minutes
    tracker = analytics.newTracker("REMOVED CODE FOR STACKOVERLOW");
    tracker.enableExceptionReporting(true);

    // Since I do this 'by hand', enabling automatic will amount to double counting.
    tracker.enableAutoActivityTracking(false);

    Log.v("App", "onCreate App - after GA");


    // Because it is initialized here, we don't need to put it as the application in Manifest
    // This means we can use Google Analytics code referring to 'getApplication'.
    ActiveAndroid.initialize(this);

    Log.v("App", "onCreate App - after AA");

Gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    repositories {
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    }

    defaultConfig {
        applicationId "com.juliushuijnk.tools.ideagrowr"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 38
        versionName "1.38"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    compile 'uk.co.ribot:easyadapter:1.4.0@aar'
    compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
}

在我的Fairphone手机上登录(Android 4.2.2版本)

    07-19 14:18:24.517  18930-18930/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - before GoogleAnalytics.getInstance(this)
    07-19 14:18:24.527  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Could not find method android.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
    07-19 14:18:24.527  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve virtual method 245: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder;
    07-19 14:18:24.528  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ DexOpt: access denied from Lcom/google/android/gms/common/GooglePlayServicesUtil; to field Landroid/app/Notification;.extras
    07-19 14:18:24.528  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve instance field 18
    07-19 14:18:24.528  18930-18930/com.juliushuijnk.tools.ideagrowr E/dalvikvm﹕ Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
    07-19 14:18:24.528  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve check-cast 25 (Landroid/app/AppOpsManager;) in Lcom/google/android/gms/common/GooglePlayServicesUtil;
    07-19 14:18:24.530  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zzh
    07-19 14:18:24.530  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve virtual method 553: Landroid/content/pm/PackageManager;.getPackageInstaller ()Landroid/content/pm/PackageInstaller;
    07-19 14:18:24.534  18930-18930/com.juliushuijnk.tools.ideagrowr I/GAv4﹕ Google Analytics 7.5.71 is starting up. To enable debug logging on a device run:
        adb shell setprop log.tag.GAv4 DEBUG
        adb logcat -s GAv4
    07-19 14:18:24.538  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.MainActivity
    07-19 14:18:24.547  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.AllIdeasActivity
    07-19 14:18:24.548  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.AllNotesActivity
    07-19 14:18:24.548  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.CreateIdeaActivity
    07-19 14:18:24.548  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.CreateNoteActivity
    07-19 14:18:24.549  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.DeleteIdeaActivity
    07-19 14:18:24.549  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.OverviewActivity
    07-19 14:18:24.549  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.InfoActivity
    07-19 14:18:24.550  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.EditQsetActivity
    07-19 14:18:24.550  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.LikeActivity
    07-19 14:18:24.550  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.MigrateDatabaseActivity
    07-19 14:18:24.550  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.SettingsActivity
    07-19 14:18:24.551  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.UpdateCoreActivity
    07-19 14:18:24.553  18930-18930/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ Bool xml configuration name not recognized: ga_reportUncaughtExceptions
    07-19 14:18:24.573  18930-18930/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - after GA
    07-19 14:18:24.636  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/ActivityCompat21$SharedElementCallbackImpl; (54)
    07-19 14:18:24.636  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/ActivityCompat21$SharedElementCallbackImpl;' failed
    07-19 14:18:24.666  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$1; (1697)
    07-19 14:18:24.666  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$1;' failed
    07-19 14:18:24.667  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$3; (1697)
    07-19 14:18:24.667  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$3;' failed
    07-19 14:18:24.687  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/media/TransportMediatorJellybeanMR2$1; interface 1775 'Landroid/view/ViewTreeObserver$OnWindowAttachListener;'
    07-19 14:18:24.687  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/TransportMediatorJellybeanMR2$1;' failed
    07-19 14:18:24.688  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/media/TransportMediatorJellybeanMR2$2; interface 1776 'Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;'
    07-19 14:18:24.688  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/TransportMediatorJellybeanMR2$2;' failed
    07-19 14:18:24.689  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/media/TransportMediatorJellybeanMR2; interface 197 'Landroid/media/RemoteControlClient$OnGetPlaybackPositionListener;'
    07-19 14:18:24.689  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/TransportMediatorJellybeanMR2;' failed
    07-19 14:18:24.690  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/media/VolumeProviderCompatApi21$1; (202)
    07-19 14:18:24.690  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/VolumeProviderCompatApi21$1;' failed
    07-19 14:18:24.705  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/media/session/MediaControllerCompatApi21$CallbackProxy; (203)
    07-19 14:18:24.705  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/session/MediaControllerCompatApi21$CallbackProxy;' failed
    07-19 14:18:24.708  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/media/session/MediaSessionCompatApi18$OnPlaybackPositionUpdateListener; interface 199 'Landroid/media/RemoteControlClient$OnPlaybackPositionUpdateListener;'
    07-19 14:18:24.708  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/session/MediaSessionCompatApi18$OnPlaybackPositionUpdateListener;' failed
    07-19 14:18:24.709  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/media/session/MediaSessionCompatApi19$OnMetadataUpdateListener; interface 198 'Landroid/media/RemoteControlClient$OnMetadataUpdateListener;'
    07-19 14:18:24.709  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/session/MediaSessionCompatApi19$OnMetadataUpdateListener;' failed
    07-19 14:18:24.816  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/media/session/MediaSessionCompatApi21$CallbackProxy; (207)
    07-19 14:18:24.816  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/media/session/MediaSessionCompatApi21$CallbackProxy;' failed
    07-19 14:18:24.823  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/print/PrintHelperKitkat$1; (264)
    07-19 14:18:24.823  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/print/PrintHelperKitkat$1;' failed
    07-19 14:18:24.824  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/print/PrintHelperKitkat$2; (264)
    07-19 14:18:24.824  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/print/PrintHelperKitkat$2;' failed
    07-19 14:18:24.847  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/view/ViewCompatLollipop$1; interface 1754 'Landroid/view/View$OnApplyWindowInsetsListener;'
    07-19 14:18:24.847  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/view/ViewCompatLollipop$1;' failed
    07-19 14:18:24.867  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Failed resolving Landroid/support/v4/widget/DrawerLayoutCompatApi21$InsetsListener; interface 1754 'Landroid/view/View$OnApplyWindowInsetsListener;'
    07-19 14:18:24.867  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Landroid/support/v4/widget/DrawerLayoutCompatApi21$InsetsListener;' failed
    07-19 14:18:24.904  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ method Landroid/support/v7/internal/widget/ListViewCompat;.lookForSelectablePosition incorrectly overrides package-private method with same name in Landroid/widget/ListView;
    07-19 14:18:25.319  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter$RecyclerViewHolder; (1642)
    07-19 14:18:25.319  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter$RecyclerViewHolder;' failed
    07-19 14:18:25.320  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter; (1641)
    07-19 14:18:25.320  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter;' failed
    07-19 14:18:25.680  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter; (1641)
    07-19 14:18:25.680  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Luk/co/ribot/easyadapter/BaseEasyRecyclerAdapter;' failed
    07-19 14:18:25.680  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Unable to resolve superclass of Luk/co/ribot/easyadapter/EasyRecyclerAdapter; (7387)
    07-19 14:18:25.680  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ Link of class 'Luk/co/ribot/easyadapter/EasyRecyclerAdapter;' failed
    07-19 14:18:26.240  18930-18930/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - after AA
    07-19 14:18:26.471  18930-18930/com.juliushuijnk.tools.ideagrowr V/App﹕ end of onCreate App
    07-19 14:18:26.559  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
    07-19 14:18:26.559  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve virtual method 630: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
    07-19 14:18:26.560  18930-18930/com.juliushuijnk.tools.ideagrowr I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
    07-19 14:18:26.560  18930-18930/com.juliushuijnk.tools.ideagrowr W/dalvikvm﹕ VFY: unable to resolve virtual method 652: Landroid/content/res/TypedArray;.getType (I)I
    07-19 14:18:26.822  18930-18930/com.juliushuijnk.tools.ideagrowr V/MainActivity﹕ called onCreate MainActivity

所以,谷歌分析出现了问题,但这并不是导致应用程序启动变慢的主要原因。主要的问题似乎是像这样的代码行:

Unable to resolve superclass of Landroid/support/v4/app/ActivityCompat21$SharedElementCallbackImpl; (54)

我不知道该如何解决这些问题,因为其他帖子提到这种类型的日志信息都假定是与.jar库相关,而且是在Eclipse中。就像这里一样: Android - Unable to resolve superclass. 在我看来,两者都与我的问题无关。
在Nexus 7(2013年版)上,应用程序的启动也很慢,但日志文件给出了不同的结果:
07-19 14:48:05.631  26840-26840/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - before GoogleAnalytics.getInstance(this)
07-19 14:48:05.640  26840-26840/com.juliushuijnk.tools.ideagrowr I/GAv4﹕ Google Analytics 7.5.71 is starting up. To enable debug logging on a device run:
    adb shell setprop log.tag.GAv4 DEBUG
    adb logcat -s GAv4
07-19 14:48:05.645  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.MainActivity
07-19 14:48:05.656  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.AllIdeasActivity
07-19 14:48:05.656  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.AllNotesActivity
07-19 14:48:05.656  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.CreateIdeaActivity
07-19 14:48:05.656  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.CreateNoteActivity
07-19 14:48:05.657  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.DeleteIdeaActivity
07-19 14:48:05.657  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.OverviewActivity
07-19 14:48:05.657  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.InfoActivity
07-19 14:48:05.658  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.EditQsetActivity
07-19 14:48:05.658  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.LikeActivity
07-19 14:48:05.658  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.MigrateDatabaseActivity
07-19 14:48:05.658  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.SettingsActivity
07-19 14:48:05.659  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ String xml configuration name not recognized: com.juliushuijnk.tools.ideagrowr.UpdateCoreActivity
07-19 14:48:05.659  26840-26840/com.juliushuijnk.tools.ideagrowr W/GAv4﹕ Bool xml configuration name not recognized: ga_reportUncaughtExceptions
07-19 14:48:05.689  26840-26840/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - after GA
07-19 14:48:06.082  26840-26840/com.juliushuijnk.tools.ideagrowr W/art﹕ Before Android 4.1, method int android.support.v7.internal.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
07-19 14:48:07.580  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter$RecyclerViewHolder>
07-19 14:48:07.580  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter$RecyclerViewHolder>
07-19 14:48:07.581  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter>
07-19 14:48:07.581  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter>
07-19 14:48:07.583  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter>
07-19 14:48:07.583  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.EasyRecyclerAdapter>
07-19 14:48:07.583  26840-26840/com.juliushuijnk.tools.ideagrowr I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<uk.co.ribot.easyadapter.EasyRecyclerAdapter>
07-19 14:48:07.592  26840-26840/com.juliushuijnk.tools.ideagrowr V/App﹕ onCreate App - after AA
07-19 14:48:07.606  26840-26840/com.juliushuijnk.tools.ideagrowr V/App﹕ end of onCreate App
07-19 14:48:07.690  26840-26840/com.juliushuijnk.tools.ideagrowr V/MainActivity﹕ called onCreate MainActivity

虽然我并不能完全理解其中大部分内容,但我认为这是最奇怪的一句话:

Before Android 4.1, method int android.support.v7.internal.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView

如果有帮助的话,清单文件的开头如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.juliushuijnk.tools.ideagrowr"
    android:installLocation="auto" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.myTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

更多背景信息:我并非专业软件开发人员,这只是一个个人项目。了解如何解决此类问题也会很有帮助。


在LogCat中... 尝试摆脱所有(尽可能多的)包含“W / dalvikvm”特别是“E / dalvikvm”的行...像:字符串xml配置名称未被识别:com.juliushuijnk.tools.ideagrowr.MainActivity - Danielson
你的意思是清理这些问题,还是让我把代码集中在尝试摆脱它们上? - Julius
测量在Application.onCreate()中初始化每个组件所需的时间,这样你就会知道哪个组件有问题。 - BladeCoder
后者...你在日志中收到的警告表明某些不太理想的情况,比如编译器需要进行额外的转换才能启动你的应用程序...仔细阅读警告并尝试找出与你的代码相关的链接... - Danielson
从日志行左侧的时间来看,我可以推断出 "ActiveAndroid.initialize(this);" 就是花费大量时间的地方。也许 ActiveAndroid 是一个慢库,但这并不能解释所有错误。 - Julius
3个回答

2
我自己解决了这个问题。最终,这是由于我实现ActiveAndroid库的方式导致的。
除非您使用有助于AA快速查找模型的配置,否则它会使您的应用程序启动非常缓慢。
我使用以下代码解决了这个问题:如何在Activeandroid中禁用模型扫描 代码类似于此(但我的模型名称不同):
 Configuration.Builder configurationBuilder = new Configuration.Builder(this);
    configurationBuilder.addModelClasses(Test.class);
    configurationBuilder.addModelClasses(ShoppingList.class);
    configurationBuilder.addModelClasses(ShoppingListItem.class);
    configurationBuilder.addModelClasses(ArticleInfoModel.class);

    ActiveAndroid.initialize(configurationBuilder.create());

现在启动几乎是即时的。我仍然不确定为什么我会得到所有这些奇怪的logcat条目。所有的“无法解析超类”可能都是AA在没有配置的情况下操作的某种间接副作用。自从我添加了配置后,这些行现在已经消失了。
这些logcat行让我困惑,我一直在寻找与gradle和支持库有关的答案,但问题并不源于此。
所以我应该从一开始就实施那个配置。但是AA写的方式让人感觉像是“好习惯”。

https://github.com/pardom/ActiveAndroid/wiki/Creating-your-database-mode

所以我学到了下次当我看到一些我认为是“好有用”的东西时,我应该在注释中写下我的假设,这样如果遇到问题,我可以快速地看到需要更改的地方。

感谢Danielson的帮助 :)


这并没有解决我的问题。应用程序启动非常缓慢,几乎需要10到15秒钟的时间。 - Bilal Haider
@BilalHaider 你是怎么解决的? - Zeeshan
对我来说,第一次启动需要20秒。我在清单文件中使用了AA_MODELS。我不知道这是由于ActiveAndroid还是其他问题。 - Zeeshan
@ShanXeeshi 仍然无法解决。已尝试配置和清单及配置两者,但均无效。 - Bilal Haider
这个问题只出现在真实设备上,而不是Genymotion模拟器上。在真实设备上需要20秒,但在Genymotion上运行得很快。可能是由于不同的架构引起的。 - Zeeshan

1

需要解决的一些问题:

首先,请确保您在项目中导入了v4和v7支持库...更具体的结果,请参见下文:

从错误开始: Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza <-- 请查看https://stackoverflow.com/a/29276586/928952

警告: 字符串xml配置名称无法识别:com.juliushuijnk.tools.ideagrowr.* <-- 请查看https://dev59.com/6WAg5IYBdhLWcg3wm776#23418561

似乎很慢:DexOpt:access denied from Lcom/google/android/gms/common/GooglePlayServicesUtil <-- 请查看https://stackoverflow.com/a/30052809/928952

类链接 Landroid/support/v4/* <-- 请检查是否已导入支持v4 jar

VFY: 无法解析虚拟方法 630: Landroid/content/res/TypedArray <-- 添加 support v7 jar 库可以解决此问题。

修复以上问题应该有助于加快启动时间。


我理解 Gradle 工作的方式(可能有错误),依赖关系确保这些库被包含。我可以在“外部库”文件夹中看到 support-v4-22.2.1 和 appcompat-v7-22.2.1,其中都有一个 classes.jar 文件。 - Julius
也许我有些困惑,因为我认为appcompat是版本7的支持库,因为应用程序本质上是可以工作的。现在我开始思考appcompat和support不是同一件事情...我会尝试找到一个support v7库。 - Julius
我认为它们是相同的(内存不足,只是不同种类的名称)。我还没有使用过gradle,但我认为将jar加载到工作区和编译成APK之间存在差异。至少在eclipse中,我必须做类似的事情。这也解释了为什么您没有编译问题,只有当您尝试运行时才会出现。 - Danielson
以错误开始:找不到类。你提供的链接涉及Google登录,而我的应用程序并没有使用那个。同时,在问题中可以查看gradle文件和清单是否与我的API版本有关。但我认为没有问题。“警告:字符串XML配置名称…” 我理解为,我具有完全需要的相同XML内容。我的文件名为global_tracker.xml(在xml文件夹中),并且具有ga_dryRun(true)和ga_logLevel(verbose)的值。我猜你对v4和v7库是正确的,但我不知道如何改变事情使其更好。 - Julius
我对gradle没有经验,所以请容忍我的不足...在这个链接https://developer.android.com/tools/building/configuring-gradle.html#buildFileBasics中,你可以看到支持库被编译并保存在libs目录下。你只需要编译'compile files('libs/activeandroid-3.0.jar')'...像链接中一样添加到你的gradle文件中即可。 - Danielson
感谢您的努力。实际上,我在 gradle 依赖项中有另一行 (compile fileTree(dir: 'libs', include: ['*.jar']))。但后来我尝试添加一个单独的 .jar 文件,但是当那没有帮助时删除了它,但是后来忘记在 gradle 文件中改回去。无论如何,我更新了问题,以包括最初的 gradle 依赖项。然而,这仍然没有解决问题。 - Julius

0

Android应用程序启动缓慢,但在缓慢启动后正常工作,这是因为当你的应用程序被销毁(ondestoryed)并且此时应用程序缓存被清除(如果你正在清除),或者从设置->应用程序->你的应用程序中进行清除,这两种情况都可能发生。再次启动应用程序时,您会发现这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接