Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
API 14-API 19(Android 4.X)和targetSdkVersion 27上的多索引问题_Android_Android 4.4 Kitkat_Android Multidex_Android 4.0.3 Ice Cream Sandwich - Fatal编程技术网

API 14-API 19(Android 4.X)和targetSdkVersion 27上的多索引问题

API 14-API 19(Android 4.X)和targetSdkVersion 27上的多索引问题,android,android-4.4-kitkat,android-multidex,android-4.0.3-ice-cream-sandwich,Android,Android 4.4 Kitkat,Android Multidex,Android 4.0.3 Ice Cream Sandwich,我用过 compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 14 targetSdkVersion 23 ... multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.1' ... } 在应用程序级别的build.gradle和 <

我用过

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    ...
    multiDexEnabled true
}

dependencies {
    compile 'com.android.support:multidex:1.0.1'
    ...
}
应用程序
级别的
build.gradle

<manifest package="com.example"
...
    <application
        android:name=".AppContext"
        ...
    >
>
在所有可用的安卓4.X设备上安装时,该应用程序开始崩溃。大多数崩溃的原因如下:

java.lang.RuntimeException:
at android.app.ActivityThread.installProvider (ActivityThread.java:5236)
at android.app.ActivityThread.installContentProviders (ActivityThread.java:4828)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4711)
at android.app.ActivityThread.access$1600 (ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1368)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:146)
at android.app.ActivityThread.main (ActivityThread.java:5602)
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:1283)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099)
at dalvik.system.NativeStart.main (Native Method)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:67)
at java.lang.ClassLoader.loadClass (ClassLoader.java:497)
at java.lang.ClassLoader.loadClass (ClassLoader.java:457)
at android.app.ActivityThread.installProvider (ActivityThread.java:5221)
我发现解决这个问题的唯一办法就是排除

//    compile 'com.android.support:multidex:1.0.3'
app
-级别
build.gradle
和更改

public class AppContext extends Application {
...}

这是
构建工具27.x.x
中的错误还是什么

你可以这样试试

1) 除去

多索引启用真

来自应用程序gradle 并且只添加

实现'com.android.support:multidex:1.0.3'

添加到您的应用程序依赖项

像这样

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.heizolscout.itclanbd.heizolscout"
    minSdkVersion 18
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- 
rules.pro'
    }
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:support-v4:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

我的一个应用程序也有同样的问题。像这样使用app extensing
MultiDexApplication

public class AppContext extends MultiDexApplication {

  ...

}
compile 'com.android.support:multidex:1.0.3'
import android.support.multidex.MultiDex;

public class AppContext extends Application {

   ...

   @Override
   protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
   }
}
并使用如下所示的多索引依赖项:

public class AppContext extends MultiDexApplication {

  ...

}
compile 'com.android.support:multidex:1.0.3'
import android.support.multidex.MultiDex;

public class AppContext extends Application {

   ...

   @Override
   protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
   }
}
没用

我通过在应用程序类中使用
MultiDex.install
来解决这个问题。大概是这样的:

public class AppContext extends MultiDexApplication {

  ...

}
compile 'com.android.support:multidex:1.0.3'
import android.support.multidex.MultiDex;

public class AppContext extends Application {

   ...

   @Override
   protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
   }
}

可能重复的可能是您是对的,但解决方案不存在,而且当应用程序使用的方法少于64K时,他们似乎正在使用
multidex
。错误您的应用程序的
minSdkVersion
是什么,崩溃设备的API是什么?您是否同时使用了
extends multidex应用程序
com.android.support:multidex:1.0.3
,或者您尝试了一种又一种方法?我已经尝试了所有的可能性。首先扩展多索引应用程序。其次,在AndroidManifest.xml中使用android:name=“android.support.multidex.MultiDexApplication”。并使用MultiDex.install()<代码>仅MultiDex.install()适用于我们的测试设备(三星s3、s4、小米、维梧、华为、熔岩等)。我的应用程序正在使用android 14作为
minSdkVersion
是否所有崩溃的设备都有API<21?是的,所有低于21的设备都会崩溃。尤其是Android版本为4.4的设备。你需要自己尝试确认。我已经在谷歌开发者控制台收到了很多用户的确认:)我已经给谷歌写过信了。请启动它。结果:
org.gradle.api.tasks.TaskExecutionException:task执行失败:应用程序:transformDexArchiveWithExternalLibsDexMergerForDebug'
原因:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:合并dex存档时出错
从android studio菜单重试使缓存无效并重新启动@伊莎森特