• 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

  • 相关阅读:
    Swift 3 中的访问控制 open public internal fileprivate private
    swift3.0 创建一个app引导页面
    cocoapods安装及常用命令
    swift 多线程及GCD
    swift 键盘属性与事件
    [bzoj2588] Count on a tree
    [JSOI2007] 文本生成器
    18.09.22模拟赛T2 历史
    [USACO18OPEN] Talent Show
    [国家集训队] 整数的lqp拆分
  • 原文地址:https://www.cnblogs.com/liemng/p/6437090.html
Copyright © 2020-2023  润新知