当我直接编译我的应用程序时,它适用于每个设备。但是,当我通过Fabric进行构建并从Fabric Beta应用程序安装我的应用程序时,我在启动应用程序后立即崩溃:
java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
at com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext(BootstrapApplication.java:229)
at android.app.Application.attach(Application.java:201)
at android.app.Instrumentation.newApplication(Instrumentation.java:998)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4720)
at android.app.ActivityThread.access$1500(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1343)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
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:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
仅在4.4及更低版本的设备上发生这种情况。我也遇到与this有关的麻烦。你认为我遇到的崩溃有关系吗?
这是我的项目build.gradle:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'io.fabric.tools:gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
这是我的app build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
...
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
答案 0 :(得分:8)
如果您使用的是Android Studio 2.0或更高版本,则应禁用即时运行&尝试再次建造。
Instant Run会尝试热插拔代码;这会导致应用程序类被移动。
禁用即时运行转到 文件>设置>构建,执行,部署>即时运行>取消选中"启用即时运行"
答案 1 :(得分:0)
NoClassDefFoundError - 通常与multidex问题有关。请检查此答案:Multidex