2017-01-09 130 views
-5

我正在處理電報源代碼。所有的事情都是正確的,現在應用程序將在設備上安裝並運行成功。強制關閉安卓設備中的android應用程序4

但是,在android版本4.0.1至android版本4.2.2的設備中,該應用將停止並顯示如下所示的錯誤。 我將build.gradle中的defaultConfig.applicationId更改爲ir.familygram.messenger,並猜測這是問題所在,但爲什麼它在具有sdk 22,23等的設備上運行良好。並不適用於Android SDK較低的設備?

錯誤,在Android設備監控:

01-09 15:45:40.190: E/AndroidRuntime(8158): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{ir.familygram.messenger/org.telegram.ui.LaunchActivity}: java.lang.ClassNotFoundException: org.telegram.ui.LaunchActivity 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1998) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.access$600(ActivityThread.java:138) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.os.Looper.loop(Looper.java:137) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.main(ActivityThread.java:4954) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at dalvik.system.NativeStart.main(Native Method) 
01-09 15:45:40.190: E/AndroidRuntime(8158): Caused by: java.lang.ClassNotFoundException: org.telegram.ui.LaunchActivity 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.Instrumentation.newActivity(Instrumentation.java:1056) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1989) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  ... 11 more 
01-09 15:58:00.770: E/Trace(9057): error opening trace file: No such file or directory (2) 

回答

0

答案鏈接: NoClassDefFoundError below SDK 21

我加入這個我的應用程序類解決了這個問題。在AndroidManifest.xml中

android:name="android.support.multidex.MultiDexApplication" 

到您的代碼如果您已經實現的應用程序類

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

如果你沒有/使用的應用程序類,你可以把這個

顯然,您需要添加Gradle依賴項:

compile 'com.android.support:multidex:1.0.0' 

有關65k方法問題的更多信息:https://developer.android.com/tools/building/multidex.html