Thêm Hỗ trợ đa dex với sự hỗ trợ v4-R21 sử dụng def gradle (https://plus.google.com/+IanLake/posts/JW9x4pcB1rj)Sử dụng MultiDexApplication gây thử nghiệm Robolectric cho lớp ứng dụng để phá vỡ
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "info.osom.multidex"
minSdkVersion 19
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
preDexLibraries = false
}
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = []
}
dx.additionalParameters += '--multi-dex'
dx.additionalParameters += "--main-dex-list=$projectDir/multidex.keep".toString()
}
Bây giờ công trình này cho các ứng dụng riêng của mình và tôi có thể để xây dựng và triển khai nhưng khi tôi chạy thử nghiệm robolectric cho lớp Ứng dụng của mình, tôi nhận được một lỗi từ ZipUtils (được bắt gặp trong MultiDex.java). Các thử nghiệm khác đang chạy tốt. Đây là dấu vết -
Gây ra bởi: java.lang.RuntimeException: Cài đặt đa dex không thành công (/ Người dùng/Mã/android-code/android /. (Là thư mục)). tại android.support.multidex.MultiDex.install (MultiDex.java:178) tại android.support.multidex.MultiDexApplication.attachBaseContext (MultiDexApplication.java:39) tại android.app.Application.attach (Application.java: 181) tại org.fest.reflect.method.Invoker.invoke (Invoker.java:112) tại org.robolectric.internal.ParallelUniverse.setUpApplicationState (ParallelUniverse.java:155) tại org.robolectric.RobolectricTestRunner.setUpApplicationState (RobolectricTestRunner.java:430) tại org.robolectric.RobolectricTestRunner $ 2.evaluate (RobolectricTestRunner.java:236) tại org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:271) tại org.junit.runners.BlockJUnit4ClassRunner .runChild (BlockJUnit4ClassRunner.java:70) tại org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:50) tại org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:238) tại org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:63) tại org.junit.runners.ParentRunner.runChildren (ParentRunner.java:236) tại org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:53) tại org.junit.runners .ParentRunner $ 2.đánh giá (ParentRunner.java:229) tại org.robolectric.RobolectricTestRunner $ 1.evaluate (RobolectricTestRunner.java:177) tại org.junit.runners.ParentRunner.run (ParentRunner.java:309) tại tổ chức .gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass (JUnitTestClassExecuter.java:86) tại org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute (JUnitTestClassExecuter.java:49) tại org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass (JUnitTestClassProcessor.java: 69) tại org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass (SuiteTestClassProcessor.java:48) tại org.gradle.messaging.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:35) tại tổ chức. gradle.messaging.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:24) tại org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch (ContextClassLoaderDispatch.java:32) tại org.gradle.messaging.dispatch.ProxyDispatchAdapter $ DispatchingInvocationHandler. gọi (ProxyDispatchAdapter.java:93) tại com.sun.proxy . $ Proxy2.processTestClass (Unknown Source) tại org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass (TestWorker.java:105)
Tôi nghĩ tìm kiếm gói ứng dụng nhưng tìm thư mục gốc của dự án thay vì – Rickster
Không ai có ý tưởng nào? – Rickster