Articles of android multidex

没有使用Multidex的Android Espresso会显示“未find测试”

我的Espresso测试一直在运行,直到我不得不支持multidex。 我的build.gradle,我有 minSdkVersion 14 targetSdkVersion 23 multiDexEnabled = true testInstrumentationRunner “com.android.test.runner.MultiDexTestRunner” androidTestCompile ‘com.android.support.test.espresso:espresso-core:2.2.1’ androidTestCompile ‘com.android.support.test.espresso:espresso-contrib:2.2.1’ androidTestCompile ‘com.android.support.test:runner:0.4.1’ androidTestCompile ‘com.android.support.test:rules:0.4.1’ dexOptions { jumboMode true javaMaxHeapSize “4g” incremental true } Test1AuthenticationEspressoTest @RunWith(AndroidJUnit4.class) @SmallTest public class Test1AuthenticationEspressoTest { @Rule public ActivityTestRule mActivityRule = new ActivityTestRule(WelcomeActivity.class); } 这是我得到的错误 junit.framework.AssertionFailedError:在com.livestrong.tracker.test.Test1AuthenticationEspressoTest中找不到测试 任何帮助将不胜感激。 有人使用浓缩咖啡吗?

升级到Android Studio 2.3后,获取“package android.support.multidex”不存在

我昨天从Android Studio 2.2.3更新到Android Studio 2.3,我遇到了以下两个问题: 更新后,默认情况下安装了Gradle 3.2,但同步我的项目不起作用,我不断收到错误消息“需要Gradle 3.3”。 使用默认的Gradle包装器不起作用。 解决此问题的唯一方法是手动下载Gradle 3.3并指向构建设置中的目录。 在运行我的项目时,我不断收到涉及扩展MultiDexApplication BaseApplication类的一系列错误。 错误是这样的: Error:(19, 62) error: package android.support.multidex does not exist 我无法解决此错误。 我有buildToolsVersion ‘25.0.2’ ,我的项目在升级到Android Studio 2.3之前已经编译并正常运行。 任何人都可以帮我解决这个问题吗?

加速multidex应用程序中的gradle构建

我的应用程序有一堆必不可少的库,这就是为什么我被迫使用multidex支持库并且它运行良好。 但问题出在哪里是在gradle buid速度。 平均需要2分钟才能构建,当我开发和测试时,这非常烦人。 有没有办法加快我的调试版本?

gradle – Android Studio构建太慢的multidex应用程序

当我向我的项目添加multidex:true,并创建一个从MultiDexApplication扩展的Application类时,我的项目构建时间从20秒传递到大约90秒。如何更快地做一些?

执行任务失败:app:shrinkReleaseMultiDexComponents'

在Android Studio中生成已签名的apk时,出现以下错误。 :app:shrinkReleaseMultiDexComponents FAILED Error:Execution failed for task ':app:shrinkReleaseMultiDexComponents'. > java.io.IOException: The output jar [E:\SVN_studio\100's\trunk\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty. Information:BUILD FAILED Information:1 error Information:Total time: 35.975 secs Information:159 warnings 这里是我的build.gradle文件 apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 21 buildToolsVersion "22.0.1" defaultConfig { applicationId "<packageName>" minSdkVersion […]

如何通过导入正确的库来避免DEX 64K LIMIT

在编译我使用的所有库时,我遇到了这个问题, 在Dalvik中溢出了64k方法限制 。 当我导入支持库的时候,我开始遇到这个问题,因为有些已经包含在其他支持库中,结果溢出了极限。 有没有办法来validation一个库是否在当前项目中未使用或已经通过其他库依赖关系导入? 目前,我排除了我所知道的那些,但是看起来很奇怪,不得不亲自去做。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:multidex:1.0.1' compile "com.android.support:percent:${supportLibVersion}" compile("com.android.support:design:${supportLibVersion}") { exclude module: 'support-v4' } compile("com.android.support:cardview-v7:${supportLibVersion}") { exclude module: 'support-v4' } compile('com.github.nkzawa:socket.io-client:0.4.1') { exclude group: 'org.json', module: 'json' } compile('com.astuetz:pagerslidingtabstrip:1.0.1') { exclude module: 'support-v4' } //… } 目前的解决scheme: 使用Gradle插件 – 我们写了一个非常容易使用的Gradle插件,后面列出了随包装数量一起打包的方法数量。 你可以在这里find更多关于它的信息。 www.methodscount.com – 想知道一个特定的图书馆将添加到您的应用程序有多less种方法? 只需在这个网站上input'compile'语句,它会告诉你它的方法数量,依赖关系,JAR大小和DEX大小。 Android […]

Android – 使用Dex进行debugging

我的项目工作正常,直到我添加Facebook的依赖。 我已经开始得到这个错误。 我读过很多问题,这个问题似乎与MultiDex有关。 但是,没有任何解决scheme为我工作 Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'' finished with non-zero exit value 1 即使删除了我所添加的东西,它仍然显示,而且在build设时比平常还要花费很多时间 这是我的build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "net.ciblo.spectrodraft" minSdkVersion 15 targetSdkVersion 23 versionCode 1 multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' […]

Android 4.4.4上的FlexJson ClassNotFoundexception

我有Android设备的multidex项目。 我使用Flexjson。 我已经用flexjson 3.3和2.xtesting过了。 它与Android 5.x完美的工作,但在Android 4.4.4崩溃。 它看起来像Dex支持库不适合与旧的Android版本,但我不知道。 这是我的堆栈跟踪: 06-29 03:50:44.763 11884-11884/com.pigdroid.gameboard E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.pigdroid.gameboard, PID: 11884 flexjson.JSONException: [ layers.values ]: Could not load com.pigdroid.game.board.tile.model.IntTileLayer at flexjson.ObjectBinder.findClassInMap(ObjectBinder.java:250) at flexjson.ObjectBinder.findClassName(ObjectBinder.java:213) at flexjson.ObjectBinder.bind(ObjectBinder.java:92) at flexjson.ObjectBinder.bindIntoCollection(ObjectBinder.java:110) at flexjson.factories.ListObjectFactory.instantiate(ListObjectFactory.java:13) at flexjson.ObjectBinder.bind(ObjectBinder.java:95) at flexjson.ObjectBinder.bindIntoObject(ObjectBinder.java:149) at flexjson.factories.ExistingObjectFactory.instantiate(ExistingObjectFactory.java:25) at flexjson.ObjectBinder.bind(ObjectBinder.java:95) at flexjson.ObjectBinder.bind(ObjectBinder.java:74) at flexjson.JSONDeserializer.deserialize(JSONDeserializer.java:241) at flexjson.JSONDeserializer.deserializeInto(JSONDeserializer.java:301) at com.pigdroid.game.model.memento.UndoableObject.from(UndoableObject.java:35) at […]

RoboGuice 3.0 NoClassDefFoundError:roboguice.inject.ContextScopedRoboInjector

这并不总是可见,但在特定的API 14和19上看到。 以下是堆栈跟踪 java.lang.NoClassDefFoundError: roboguice.inject.ContextScopedRoboInjector at roboguice.RoboGuice.getInjector(RoboGuice.java:197) at roboguice.activity.RoboActivity.onCreate(RoboActivity.java:90) at com.bnmcombines.galleryflavors.Launcher.onCreate(Launcher.java:71) at android.app.Activity.performCreate(Activity.java:5343) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441) at android.app.ActivityThread.access$900(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5345) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) at dalvik.system.NativeStart.main(Native Method) RoboGuice 3.0已经logging了一个问题: https : //github.com/roboguice/roboguice/issues/328 但没有回应,我们目前被封锁。 问题解决了 这次我更仔细地介绍了MultiDex Document,并将我的AndroidManifest.xml更新到了我以前错过的版本 <application … android:name="android.support.multidex.MultiDexApplication"> … </application> […]

Android Studio 2.0即时运行会导致DexFile无法加载所有类

我有一些代码来得到一个类似于这个包的所有类的列表: try { DexFile df = new DexFile(context.getPackageCodePath()); for (Enumeration<String> iter = df.entries(); iter.hasMoreElements();) { String s = iter.nextElement(); } } catch (IOException e) { e.printStackTrace(); } 但是,由于我将Android Studio升级到版本2.0,因此此代码已停止工作。 我发现罪魁祸首是即时跑步。 如果我debugging应用程序,我可以看到,没有实例运行,DexFilevariables,df,包含类名称的列表(超过4000)。 当“即时运行”打开时,我只能得到30个左右的类名,而我正在寻找的类不在那里。 我有一种感觉,它与多dex有关,但我不知道即时运行是如何工作在封面(我的应用程序不使用multidex)。 有谁知道我可以如何获得类似这样的Instant Run打开的列表? 或者是否有人知道我为什么看到这种行为(会很好理解)?