我收到以下错误.
致命异议:主要
这是我的build.gradle,我在android部分启用了multidex,
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
defaultConfig {
applicationId "com.mycompany.newlogin"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
useLibrary 'org.apache.http.legacy'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:multidex:1.0.0'
compile 'com.google.guava:guava-jdk5:17.0'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
//compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
}
Run Code Online (Sandbox Code Playgroud)
我的清单文件是
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我在Google Play开发者控制台中不断收到此错误报告.它看起来像MultiDex错误.
java.lang.RuntimeException:
at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4514)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method:0)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method:0)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newApplication(Instrumentation.java:975)
at android.app.LoadedApk.makeApplication(LoadedApk.java:511)Run Code Online (Sandbox Code Playgroud)
我已经将它添加到gradle.build:
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}Run Code Online (Sandbox Code Playgroud)
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
try {
MultiDex.install(this);
}catch (RuntimeException e){
e.printStackTrace();
}catch (Exception e){ …Run Code Online (Sandbox Code Playgroud)页面http://developer.android.com/tools/building/multidex.html#testing 建议
dependencies {
compile 'com.android.support:multidex:1.0.1'
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1'
}
android {
defaultConfig {
multiDexEnabled true
testInstrumentationRunner "android.support.multidex.MultiDexTestRunner"
}
}
Run Code Online (Sandbox Code Playgroud)
但是在运行测试时会产生ClassNotFoundException.
API文档和dexdump显示有com.android.test.runner.MultiDexTestRunner.
所以如果我不相信文档而是指定
dependencies {
compile 'com.android.support:multidex:1.0.1'
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1'
}
android {
defaultConfig {
multiDexEnabled true
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
}
Run Code Online (Sandbox Code Playgroud)
然后我明白了
com/company/myapp/MyApp; had used a different Landroid/support/multidex/MultiDexApplication; during pre-verification
...
IllegalAccessExceptionIllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
Run Code Online (Sandbox Code Playgroud)
我怀疑doc页面是错误的,正确的路径是com.android.test.runner.MultiDexTestRunner ...加上我还有其他一些问题.
请注意,multidex应用程序工作正常.不知何故,第二个MultiDexApplication包含在测试apk中.
问题:
MultiDexTestRunner的正确路径是哪条?为什么我在测试apk中获得第二个MultiDexApplication?
我想在我的应用程序中使用multidex,At First我使用了依赖:
'com.google.android:multidex:0.1'但是在编译之后出现了这个错误:
错误:任务':packageAllDebugClassesForMultiDex'的执行失败.
java.util.zip.ZipException:重复条目:android/support/multidex/BuildConfig.class
后来我改变'com.google.android:multidex:0.1'到'com.android.support:multidex:1.0.1',但之后,import android.support.multidex.MultiDex;在应用程序类解决不了,任何人都可以帮忙吗?
从最新的SDK版本开始,使用多个dex文件创建应用程序要简单得多(https://developer.android.com/tools/building/multidex.html),我的问题是,当我使用这个新功能时也可以使用我没有使用Gradle构建过程,而是使用"旧的"Eclipse构建链?
Gradle构建文件中的"multiDexEnabled true"也必须以其他方式传递给Android编译器吗?
升级到Android Studio 3.1后,我在构建期间开始出现以下错误.项目使用multidex,默认情况下启用DX,就像您在错误中注意到的那样.我试图检查依赖图以了解发生了什么,但到目前为止还没有任何线索.有趣的是,这只能在我的机器上失败.我清理了一切,包括重新安装等,但没有任何效果.
任何人都有同样的问题,你是如何解决的?或者我可以看看的任何方向?
AGPBI: {
"kind":"error",
"text":"Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat",
"sources":[{}],
"tool":"D8"
}
Run Code Online (Sandbox Code Playgroud)
这是失败的任务:
transformDexArchiveWithExternalLibsDexMergerForDebug
Run Code Online (Sandbox Code Playgroud)
我检查了类似的问题,似乎随机的东西修复了他们的问题,我不确定究竟是什么原因.
为gradle构建系统启用multi-dex选项很容易,但是我没有找到如何为ant构建启用此选项的示例.怎么归档这个?
这是我用android studio 1.0.2实现的错误日志
02-03 13:05:23.831 8385-8385/com.******.*******E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB
at android.support.v4.app.NavUtils$NavUtilsImplJB.getParentActivityName(NavUtils .java:125)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:302)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:281)
at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:142)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123)
at com..******.*******.****.ActivityWelcome.onCreate(ActivityWelcome.java:33)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
组态
buildToolsVersion "21.1.2"
android SDK TOOLS"24.0.2"
multidex enabled
predexLibraries =false
incremental = true
jumboMode = false
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.87'
compile …Run Code Online (Sandbox Code Playgroud) 我刚刚将我的应用程序发布到Google Play商店,并且已成功发布已签名的apk.但是,(我在三种不同的手机和平板电脑上试过这个),app从商店下载时拒绝安装.单击"安装"按钮后,应用程序将下载,状态将更改为"正在安装...",然后会出现以下对话框:
可以做些什么?
有关我的应用程序的事实可以帮助排除故障:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
jcenter()
}
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "io.givenow.app"
minSdkVersion 17
targetSdkVersion 22
versionCode 1
versionName "1.0"
// Enabling multidex support.
multiDexEnabled true
}
signingConfigs {
debug {
storeFile file('../debug.keystore') …Run Code Online (Sandbox Code Playgroud) 我
在我的应用程序 gradle 文件中添加了依赖项
implementation 'com.android.support:multidex:1.0.3'
和 defaultconfig
multiDexEnabled = true,现在我的构建 apk 处理成功,但是当我运行应用程序时,我在 logcat 中出现错误:
2020-03-23 17:17:16.312 13609-13609/? E/example.sahayo: Unknown bits set in runtime_flags: 0x28000
2020-03-23 17:17:16.401 13609-13639/? E/Perf: Fail to get file list com.example.sahayog
2020-03-23 17:17:16.402 13609-13639/? E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
2020-03-23 17:17:16.402 13609-13639/? E/Perf: Fail to get file list com.example.sahayog
2020-03-23 17:17:16.402 13609-13639/? E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
2020-03-23 17:17:16.403 …Run Code Online (Sandbox Code Playgroud) android ×10
android-multidex ×10
java ×3
ant ×1
build ×1
build-system ×1
dex ×1
eclipse ×1
google-play ×1