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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM