在我的项目中,我使用了需要multidex支持的库。 根据我的研究,我发现它会导致应用启动时出现延迟。
我在gradle中启用了multidexfunction。 defaultConfig {multiDexEnabled true}
我曾经为kitkat设备获得NoClassDefFound Exception,所以我添加了以下内容:
我在清单中添加了应用程序名称为android:name =“android.support.multidex.MultiDexApplication”
并使用MultiDexApplication扩展了我的应用程序类。
我知道上面的任何一个都足够但我刚刚写了两个。
我尝试了不同的方法来优化启动的持续时间,如下所示:
1.added productFlavors {dev {minSdkVersion 21} prod {minSdkVersion 14}}
dexOptions {preDexLibraries false javaMaxHeapSize“4g”}
我只导入了必需的google play服务库,而不是导入完整的库。
你能不能建议我一种即兴创作的方法,因为它实际上需要超过10秒,有时甚至超过某些设备?
或者是否有任何其他原因导致延迟与multidex相比?
提前致谢。
我添加了build.gradle文件内容:
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 buildToolsVersion "23.0.3" useLibrary 'org.apache.http.legacy' defaultConfig { applicationId "com.example.app" minSdkVersion 17 targetSdkVersion 23 versionCode 3 versionName "1.2" multiDexEnabled true } dexOptions { incremental true javaMaxHeapSize "10g" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile files('libs/ormlite-android-4.28.jar') compile files('libs/ormlite-core-4.28.jar') compile project(':volley') compile 'com.android.support:cardview-v7:23.2.1' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.google.code.gson:gson:2.3.1' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.github.siyamed:android-shape-imageview:0.9.+@aar' compile 'com.viewpagerindicator:library:2.4.1@aar' compile 'com.android.support:design:23.2.1' compile 'com.facebook.android:facebook-android-sdk:4.1.2' compile 'org.jsoup:jsoup:1.8.2' compile 'org.twitter4j:twitter4j:4.0.3' compile 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0' compile 'com.orhanobut:dialogplus:1.11@aar' compile 'com.google.android.gms:play-services-maps:8.3.0' compile 'co m.google.android.gms:play-services-gcm:8.3.0' compile 'com.google.android.gms:play-services-location:8.3.0' compile 'org.java-websocket:Java-WebSocket:1.3.0' compile 'org.apache.commons:commons-lang3:3.4' compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:recyclerview-v7:23.1.1' }
新发布的Android Studio 2.0或2.1存在一个奇怪的问题。 第一次启动应用程序需要比平时更长的时间。 此问题仅在调试模式下发生,不会对您发布的APK产生影响。 我也遇到了这个问题,并find了这个解决方案。
Settings/Preferences(Mac) → Build, Execution, Deployment → Instant Run and uncheck Instant Run
这将解决您的问题,如果是,请标记为已接受的答案。
android studio 2.0和2.1版中存在一个问题,但答案很简单。 您必须转到首选项/构建,执行,部署/即时运行。
然后,当您单击右侧的“即时运行”时,将显示4个选项,其中包含一个echa one的checkbox,您必须取消选中第一个和最后一个。 最后单击Apply,Ok。 就这样。
这将解决问题