标签: android-multidex

Android 2.3的Multidex(API 9)

谁有人能告诉我android 2.3中是否支持multi dex?

我已经四处寻找,但我无法找到相关信息.我的项目具有与此类似的配置:https://github.com/mustafa01ali/MultiDexTest

该项目构建没有问题,但最终的apk无法安装在2.3或更低的设备中.

在安装时我收到错误

Failure [INSTALL_FAILED_DEXOPT]
Run Code Online (Sandbox Code Playgroud)

在Android Studio中,它出现在logcat中:

E/dalvikvm? LinearAlloc exceeded capacity (5242880), last=1384
W/installd? DexInv: --- END '/data/app/xxx.apk' --- status=0x000b, process failed
E/installd? dexopt failed on '/data/dalvik-cache/data@app@xxx.apk@classes.dex' res = 11
Run Code Online (Sandbox Code Playgroud)

android android-studio android-multidex

6
推荐指数
1
解决办法
4117
查看次数

android multidex实现

我有这个错误.

错误:任务':myApp:createDebugMainDexClassList'的执行失败.com.android.ide.common.internal.LoggedErrorException:无法运行命令:java -Xmx1024M -cp\android-sdk\build-tools\19.1.0\lib\dx.jar com.android.multidex.ClassReferenceListBuilder myApp\build\intermediates\multi-dex\debug\componentClasses.jar myApp\build\intermediates\multi-dex\debug\allclasses.jar

错误代码:1输出:错误:无法找到或加载主类com.android.multidex.ClassReferenceListBuilder

我正在尝试使用multidex库,因为我的应用程序超过65000方法,因为我使用外部库作为链接描述,我已经在mainfest和build.gradle文件中添加了行,任何提示都将不胜感激.谢谢

几次启动后编辑我得到了这个错误.

错误:任务':myApp:dexDebug'的执行失败.com.android.ide.common.internal.LoggedErrorException:无法运行命令:\ android-sdk\build-tools\21.1.0\dx.bat --dex --no-optimize --multi-dex --main- dex-list myApp\build\intermediates\multi-dex\debug\maindexlist.txt --output myApp\build\intermediates\dex\debug --input-list = myApp\build\intermediates\tmp\dex\debug\inputList. txt ,,错误代码:3.

输出:UNEXPECTED TOP-LEVEL ERROR:java.lang.OutOfMemoryError:Java堆空间

我试图增加文件'studio64.exe.vmoptions'中的Xms1024m -Xmx1024m的大小,但它仍然没有帮助,我也尝试在设置>编译器> VM选项Xms1024m -Xmx1024m

android android-studio android-multidex

6
推荐指数
1
解决办法
4450
查看次数

任务执行失败':packageAllDebugClassesForMultiDex'

我尝试使用新的android multidex支持项目.我有这个例外的一些问题:

错误:任务':shineV3:packageAllDebugClassesForMultiDex'的执行失败.

java.util.zip.ZipException:重复条目:com/google/android/gms/analytics/internal/Command $ 1.class

关于这个问题.我使用2个不同的jar包作为依赖,有些类将在classes.dex中重复,因为两个jar都包含它们.任何的想法?提前致谢

android android-studio android-multidex

6
推荐指数
1
解决办法
5015
查看次数

在启用多索引的情况下,仪器测试随机失败

在我的Android应用程序中,我启用了多索引.该应用程序在模拟器上运行良好.我正在使用robotium来测试应用程序.但是当我执行检测测试用例时,有时测试会通过,但大多数情况下它们在系统重启后也会失败.通过和失败之间没有代码更改.

默认gradle配置:

android {
        defaultConfig {
        applicationId "com.example.androidapp"
        minSdkVersion 16
        targetSdkVersion 23
        multiDexEnabled true
        testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
        testProguardFile "proguard-test.txt"
    }
}
Run Code Online (Sandbox Code Playgroud)

还要为测试添加依赖项:

androidTestCompile fileTree(dir: 'libs', include:'robotium-solo-5.3.0.jar') 

androidTestCompile ('com.android.support:multidex-instrumentation:1.0.1') {
         exclude group: 'com.android.support', module: 'multidex' }
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中,我提到了应用程序标记:

<application
        android:name="StartupActivity"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name" ...../>
Run Code Online (Sandbox Code Playgroud)

我在StartupActivity中扩展了"android.support.multidex.MultiDexApplication".仪器测试用例下降的时间我得到以下错误:

INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalAccessError
INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
INSTRUMENTATION_CODE: 0
Run Code Online (Sandbox Code Playgroud)

logcat中的错误消息是:

W/dalvikvm? Class resolved by unexpected DEX: Lcom/example/androidapp/StartupActivity;(0xa695df08):0x9910e000 ref [Landroid/support/multidex/MultiDexApplication;] Landroid/support/multidex/MultiDexApplication;(0xa695df08):0x99a2c000
W/dalvikvm? (Lcom/example/androidapp/StartupActivity; had used a different Landroid/support/multidex/MultiDexApplication; during pre-verification)
W/dalvikvm? Unable to …
Run Code Online (Sandbox Code Playgroud)

android gradle robotium android-instrumentation android-multidex

6
推荐指数
1
解决办法
1233
查看次数

java.lang.LinkageError:MainActivity

productFlavours在我的应用中使用.我也在使用multi dex.

 defaultConfig {
         multiDexEnabled true
         minSdkVersion 17
         targetSdkVersion 22
         ... 
 }

productFlavors {
  prodFlavor1{...}
  prodFlavor2{...}
 }

dependencies {
    compile 'com.android.support:multidex:1.0.1'
...
}
Run Code Online (Sandbox Code Playgroud)

在Application类中:

@Override
    public void onCreate() {
        MultiDex.install(getApplicationContext());
        super.onCreate();
}
Run Code Online (Sandbox Code Playgroud)

我为5以下版本的Android版本添加了以上代码.

然后,下面的结构,有两个略有不同的版本MainActivity(MainActivity扩展AppCompatActivity)在应用程序的某个时刻开始,按下按钮.

app/src/prodFlavor1/.../MainActivity
app/src/prodFlavor2/.../MainActivity
Run Code Online (Sandbox Code Playgroud)

prodFlavor1,MainActivity之后立即开始SplashActivity.在prodFlavor2,MainActivity.

这之前很长一段时间,甚至在我添加了这部分之后multidex,但突然弯腰工作,没有任何解释.即使我删除了引用multidex的代码,我也会得到同样的东西.

当我切换到prodVersion2一切正常.但当我切换到prodVersion1我得到:

startActivity(new Intent(TutorialActivity.this,MainActivity.class));

适用于Android 6的Nexus 5:

Process: com.mpackage, PID: 30807
                                                             java.lang.LinkageError: com.mpackage.activities.MainActivity
                                                                 at dalvik.system.DexFile.defineClassNative(Native Method)
                                                                 at dalvik.system.DexFile.defineClass(DexFile.java:226)
                                                                 at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
                                                                 at dalvik.system.DexPathList.findClass(DexPathList.java:338)
                                                                 at …
Run Code Online (Sandbox Code Playgroud)

android android-productflavors android-multidex

6
推荐指数
1
解决办法
1895
查看次数

收缩调试多Dex组件; 无法读取dir/allclasses.jar

我正在开发一个启用Multidex的应用程序,以避免65k的限制.我想在Jar类型中添加一个外部库(即iPay Jar SDK).我已经同步了Gradle并取得了成功,但我没能运行该项目.

错误消息如下所示

Error:Execution failed for task ':app:shrinkDebugMultiDexComponents'.
Run Code Online (Sandbox Code Playgroud)

java.io.IOException: Can't read [/[dir]/app/build/intermediates/multi-dex/debug/allclasses.jar] (Can't process class [com/ipay/IpayAcitivity.class] (Unknown verification type [14] in stack map frame))

这是我的Gradle Code

apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '3.2'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}

repositories {
    mavenCentral()
    mavenLocal()
}

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName '[My Package]'
    }
}

dependencies {
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"

    compile fileTree(dir: 'libs', include: ['*.jar'])
    //Libs folder contains: org.apache.http.legacy.jar …
Run Code Online (Sandbox Code Playgroud)

java android jar gradle android-multidex

6
推荐指数
1
解决办法
1354
查看次数

Android Studio Lint - 为lint设置API级别

这就是事情.我有一个与API 15及更高版本兼容的应用程序,但由于它非常大而且我已经达到65k方法限制,我不得不将其作为MultiDexApplication类的后代.这会稍微减慢构建时间,因此我必须实施一些优化来加速该过程.我在清单中有以下代码,这可以显着减少构建API> = 21时的构建时间(取自其他一些SO线程):

    productFlavors {
        dev {
            minSdkVersion 21
        }
        prod {
            minSdkVersion 15
        }
    }
Run Code Online (Sandbox Code Playgroud)

一切都很完美,但问题是在开发过程中,Android工作室认为我的minSdkVersion SDK级别是21(正确),并且lint没有显示我不兼容的API(15-21).我真正想要的是能够使用minSdkVersion设置为21(快速构建),但将"lint minSdkVersion"设置为15,所以我看到代码的部分与旧的API不兼容,而不是21.我尝试过google它,也调查AS lint首选项,但我没有找到任何有用的东西.谢谢你的任何建议.我目前的解决方案是将dev风格的minSdkVersion切换为21并检查是否有任何错误,但这不是我想要的.

android lint android-studio android-multidex

6
推荐指数
1
解决办法
770
查看次数

Android Studio:为什么我在全新的Google Maps API项目中出现多重dex错误?

我对Android编程比较陌生,我正在尝试创建一个Google Maps项目.我在Android Studio中使用了模板选项,并添加了API的密钥.

我没有添加任何自己的代码并保留模板代码,因为我只是想运行代码并查看它看起来像什么,但是,当我尝试在模拟器上运行时,我不断收到多个dex错误导致构建失败.我收到此错误是很奇怪的,因为我根本没有添加任何代码,并且正在使用Google地图模板从Android Studio获取的内容.

任何人都知道为什么这个错误出现在一个全新的项目上?我看到的错误粘贴在下面.

错误:.dex文件中的方法引用数不能超过64K.请访问https://developer.android.com/tools/building/multidex.html,了解如何解决此问题

错误:任务':app:transformClassesWithDexForDebug'的执行失败.

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process. internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.8.0_91\bin\java.exe''以非零退出值2结束

android google-maps android-multidex

6
推荐指数
1
解决办法
6779
查看次数

Android - 使用Multidexlist转换类进行调试 - Instagram JSON Parser

我正在尝试编译和部署我的Android应用程序,但我遇到了一个MultiDex问题:

Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> java.lang.UnsupportedOperationException (no error message)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多修复,但它们不起作用.

我已经尝试过的:

1. multiDexEnabled是的

2. dexOptions

dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)

3.在Android Studio设置中关闭Instant Run

4.重新启动Android Studio和计算机.

5. 清除重建项目.

6. 文件 >使高速缓存/重新启动无效.

7. 编译'com.android.support:multidex:1.0.1' [编辑]

最后重启我的生活,但没有想要的工作..

可以做些什么来解决这个问题?

这是我的Gradle文件

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

android { …
Run Code Online (Sandbox Code Playgroud)

java android android-studio android-gradle-plugin android-multidex

6
推荐指数
1
解决办法
1313
查看次数

Dagger 2和Multidex应用程序

我正在使用支持Android注入的Dagger 2.11.添加大量依赖项后,我被迫启用了MultiDex.

添加了对Multidex的支持,在Android 4.4上按预期工作,在Android> = 6上工作得很好.

该问题仅出现在Android 5和5.1上,我收到以下错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "dagger.internal.Preconditions" on path: DexPathList[[zip file...
Run Code Online (Sandbox Code Playgroud)

我试着添加"dagger.internal.Preconditions"到我使用的文件中multiDexKeepProguard,没有运气.

build.gradle文件

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

repositories {
    maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.tmiyamon.config'

apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.tmiyamon.config'
apply plugin: 'realm-android'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "appId"
        minSdkVersion …
Run Code Online (Sandbox Code Playgroud)

android dagger android-multidex dagger-2

6
推荐指数
1
解决办法
1753
查看次数