Android Studio分包引发的血案(App启动一直黑屏问题)

  最近在处理关于Arcgis和高德以及百度地图在Android Studio上的代码混淆问题,这里说下问什么要做混淆,原因就是app在低版本手机上(4.X)安装启动之后手机一直黑屏。

  在开始解决上述应用启动一直黑屏问题之前,这里说下Android Studio上的分包。

  通过Gradle配置您的应用进行分包>>>>>

  Android SDK Build Tools 21.1 及更高版本中提供的 Android Plugin for Gradle 支持以 Dalvik 可执行文件分包作为构建配置的一部分。请您务必使用 SDK 管理器将 Android SDK Build Tools 工具和 Android 支持存储区更新至最新版本,然后再尝试配置您的应用进行 Dalvik 可执行文件分包。

将您的应用开发项目设置为使用 Dalvik 可执行文件分包配置需要对您的应用开发项目做几项修改。具体地讲,您需要执行以下步骤:

  • 将您的 Gradle 构建配置更改为启用 Dalvik 可执行文件分包
  • 修改您的清单以引用 MultiDexApplication 类

修改模块级 build.gradle 文件配置以加入支持库和启用 Dalvik 可执行文件分包输出,如下面这段代码中所示:

  

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

 

  在您的清单中,将 Dalvik 可执行文件分包支持库中的 MultiDexApplication 类添加到 application 元素中。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

  将这些配置设置添加到应用后,Android 构建工具会根据需要构建主 dex (classes.dex) 和辅助 dex(classes2.dex、classes3.dex)。随后构建系统会将它们打包成一个 APK 文件进行分发。

  :如果您的应用用途会扩展 Application 类,您可以替换 attachBaseContext() 方法并调用 MultiDex.install(this) 来启用 Dalvik 可执行文件分包。如需了解详细信息,请参阅 MultiDexApplication 的参考文档。

  以上是Android Studio上的分包方式。

  那么之前说道APP一直黑屏的原因,其实也很简单,这里如果在Gradle中配置的启动分包(multiDexEnabled true),并且也配置了依赖jar(compile 'com.android.support:multidex:1.0.0'),切记最后一步,要么让你的应用的Application继承MultiDexApplication,要么在 attachBaseContext() 这个方法并且调用MultiDex.install(this),否则就会出现应用启动一直黑屏的问题。

  

  ----------------------------小心无大错---------------------

https://developer.android.com/studio/build/multidex.html#mdex-gradle

 

posted @ 2017-02-24 09:09  冒泡的章鱼  阅读(4221)  评论(1编辑  收藏  举报