6

Tôi làm theo các hướng dẫn multidex tại https://developer.android.com/tools/building/multidex.htmlGradle phương pháp DSL không tìm thấy: 'multiDexEnabled()'

Nhưng tôi có được điều này lỗi Gradle phương pháp DSL không tìm thấy: 'multiDexEnabled()'. Tôi đã cập nhật Công cụ được xây dựng Android, Kho lưu trữ và thư viện hỗ trợ Android. Đây là tập tin gradle.build của tôi. Tôi có làm gì sai ở đây không?

Could not find method multiDexEnabled() for arguments [true] on ProductFlavorDsl_Decorated{name=main, minSdkVersion=ApiVersionImpl{mApiLevel=10, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=17, mCodename='null'}, renderscriptTargetApi=-1, renderscriptSupportMode=null, renderscriptNdkMode=null, versionCode=-1, versionName=null, applicationId=test.com.app, testApplicationId=null, testInstrumentationRunner=null, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null}. 

build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "21.1.1" 

    defaultConfig { 
     applicationId "test.com.app" 
     minSdkVersion 10 
     targetSdkVersion 17 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 

    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile project(':addThisSDK') 
    compile project(':centeredContentButton') 
    compile project(':googleplayservices_lib') 
    compile files('libs/addthis0.0.8.jar') 
    compile files('libs/adxtag2.4.6.jar') 
    compile files('libs/android-support-v4.jar') 
    compile files('libs/aws-android-sdk-1.7.1.1-debug.jar') 
    compile files('libs/commons-lang-2.6.jar') 
    compile files('libs/crittercism_v4_4_0_sdkonly.jar') 
    compile files('libs/dd-plist.jar') 
    compile files('libs/FiksuAndroidSDK_4.1.1.jar') 
    compile files('libs/iqengines-sdk-barcode.jar') 
    compile files('libs/irEventTracker-1.2.jar') 
    compile files('libs/jolt-core-0.0.7.jar') 
    compile files('libs/json-utils-0.0.7.jar') 
    compile files('libs/jsoup-1.7.2.jar') 
    compile files('libs/kooaba-api-v4-java.jar') 
    compile files('libs/signpost-commonshttp4-1.2.1.1.jar') 
    compile files('libs/signpost-core-1.2.1.1.jar') 
    compile 'com.android.support:multidex:1.0.0' 
} 

Trả lời

4

Bạn phải chạy phiên bản 0.14.0 trở lên của plugin Android Gradle. Xem ghi chú phát hành tại http://tools.android.com/tech-docs/new-build-system để biết chi tiết về nội dung trong mỗi bản phát hành.

+1

Cảm ơn tôi đã cập nhật lên Android Studio mới nhất (Canary 0.9.2) và Android Gradle Plugin mới nhất 0.14.2 – bman

+0

@bman bạn đã làm việc đó chưa? – Bri6ko

+0

@Scott Barta tôi đang sử dụng Android studio 1.0 RC 4 nhưng cho tôi thấy lỗi như phương pháp Gradle DSL không tìm thấy: 'useOldManifestMerger()' tôi đã xóa nó và chạy ngay bây giờ nó hiển thị như Gradle DSL phương pháp không tìm thấy: 'apply()' – Manoj

-1

Hãy chắc chắn rằng bạn có android:name="android.support.multidex.MultiDexApplication" trong file manifest Android của bạn trong các yếu tố ứng dụng.

+1

thậm chí không thể nhận ra MultiDexApplication vì tệp build.gradle không xây dựng. – bman

5

Hãy chắc chắn rằng sự phụ thuộc trong tập tin gradle của ứng dụng của bạn có dòng này:

dependencies { 
compile 'com.android.support:multidex:1.0.0' 
compile 'com.android.support:appcompat-v7:21.0.0' 

}

Ngoài ra, trong toàn cầu (Dự án) tập tin gradle của bạn, hãy chắc chắn rằng bạn có phiên bản gradle mới nhất.

dependencies { 

    classpath 'com.android.tools.build:gradle:0.14.0' 
} 

Trong trình quản lý SDK, hãy đảm bảo bạn có thư viện hỗ trợ mới nhất và repo.

Trong tệp AndroidManifest.xml của bạn. thêm dòng sau:

android:name="android.support.multidex.MultiDexApplication" 

Bạn có thể đọc toàn bộ tài liệu here.

+0

Vì vậy, điều này là rõ ràng, bạn thực sự không cần phải thêm điều đó vào tệp kê khai của mình nếu bạn đang mở rộng ứng dụng. Trong trường hợp đó, bạn nên thêm @Override \t void được bảo vệ attachBaseContext (cơ sở bối cảnh) { \t \t super.attachBaseContext (base); \t \t MultiDex.install (this); \t} – portfoliobuilder

+0

Ngoài ra, câu trả lời này phải được chọn – portfoliobuilder

Các vấn đề liên quan