1

我的应用程序工作正常,但问题来了,这是与multidex的android有关。我搜索了这个问题,并根据android.developers指南进行了必要的更新。但是,我一直在与同样的问题斗争数小时。应用不同的解决方案,但仍然存在相同的问题。一个gradle构建立即花费11-12分钟,并且为了测试一个解决方案,我必须等待11-12分钟,这真的会让我失望。我在分享我的Gradle和清单文件。请帮助解决这个问题。无法更新multidex行为

的build.gradle文件

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.0" 

    defaultConfig { 
     applicationId "com.example.mudasir.login" 
     minSdkVersion 16 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions{ 
     exclude'META-INF/NOTICE.txt' 
     exclude'META-INF/NOTICE' 
     exclude'META-INF/notice.txt' 
     exclude'META-INF/LICENSE.txt' 
     exclude'META-INF/LICENSE' 
     exclude'META-INF/license.txt' 

    } 
    dexOptions{ 
     preDexLibraries = false 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    //compile 'com.android.support:appcompat-v7:24.2.0' 
    compile 'com.android.support:design:24.2.0' 
    compile 'com.android.support:support-v4:24.2.0' 
    compile 'com.google.android.gms:play-services:9.4.0' 

} 

清单文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mudasir.login"> 

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

    <!-- 
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use 
     Google Maps Android API v2, but you must specify either coarse or fine 
     location permissions for the 'MyLocation' functionality. 
    --> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     android:name="android.support.multidex.MultiDexApplication"> 
     <activity 
      android:name=".SignUpActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar" /> 
     <activity 
      android:name=".MainScreenActivity" 
      android:label="@string/title_activity_main_screen_activity" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".SignInActivity" 
      android:label="@string/title_activity_signin_" 
      android:theme="@style/AppTheme.NoActionBar" /> 
     <activity 
      android:name=".sidemenu_Activity" 
      android:theme="@style/AppTheme.NoActionBar"> 


     </activity> 

     <!-- 
      The API key for Google Maps-based APIs is defined as a string resource. 
      (See the file "res/values/google_maps_api.xml"). 
      Note that the API key is linked to the encryption key used to sign the APK. 
      You need a different API key for each encryption key, including the release key that is used to 
      sign the APK for publishing. 
      You can define the keys for the debug and release targets in src/debug/ and src/release/. 
     --> 
     <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="@string/google_maps_key" /> 

     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps"> 
     </activity> 
    </application> 

</manifest> 

回答

1

附加按照您的gradle这个文件

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

依赖欲了解更多信息,请访问:https://developer.android.com/studio/build/multidex.html

+0

让我查一下..这是唯一的问题..? –

+0

是的,你已经指定multidexEnabled真正的和更新的应用程序标记 – abhishesh

+0

好吧,让我试试..它将需要10 miuntes gradle构建来检查一个解决方案.. :( –

2

你有这部分添加到您的build.gradle

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

真正的问题是您正在使用:

compile 'com.android.support:support-v4:24.2.0' 
compile 'com.google.android.gms:play-services:9.4.0' 

不应该永远使用compile 'com.google.android.gms:play-services:9.4.0'为包括每Google Play服务库 - 仅使用APIs you need

同为V4支持库已分裂成几个smaller modules.