Sha*_*don 2 java android facebook android-studio
我不是Android开发人员,但我正在尝试为Android Studio上的应用程序升级Facebook SDK.之前的SDK是3.5,我试图添加4.4.1
我按照入门指南编写了登录类,但现在当我尝试在设备上启动应用程序时,虽然它编译得很好,但它在启动时崩溃了.
我收到以下错误:
08-05 21:05:25.128 25207-25207 /?E/dalvikvm:无法找到从com.service.Global方法引用的类'com.history.HistoryOrder'.08-05 21:05:25.138 25207-25207 /?E/AndroidRuntime:FATAL EXCEPTION:在android.app的android.app.Activity.performCreate(Activity.java:5326)的com.imperautus.testProject.ActivitySplash.onCreate(ActivitySplash.java:61)中的主要java.lang.ExceptionInInitializerError. Instrumentation.callActivityOnCreate(Instrumentation.java:1097)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)android.app.ActivityThread.access $ 700( ActivityThread.java:157)在android.app.ActivityThread $ H. 引起:java.lang.NoClassDefFoundError:com.history.HistoryOrder at com.service.Global.(Global.java:113)位于android.app的android.app.Activity.performCreate(Activity.java:5326)的com.imperautus.testProject.ActivitySplash.onCreate(ActivitySplash.java:61) .Instrumentation.callActivityOnCreate(Instrumentation.java:1097)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)android.app.ActivityThread.access $ 700 (ActivityThread.java:157)在android.app.A.运行时,Android.O.Roper.loop(Looper)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1289)位于android.os.Handler.dispatchMessage(Handler.java:99). java:176)在android.app.ActivityThread.main(ActivityThread.java:5317)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:1102)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)at dalvik.system.NativeStart.main(Native Method)
我所看到的是,它抱怨它无法找到类com.history.HistoryOrder,但这个类在这个确切的位置,它在转换到新的Facebook SDK之前工作(我没有触及类的代码).
Global.java:113说:
public static ArrayList<HistoryOrder> historyOrderList = new ArrayList<HistoryOrder>();
Run Code Online (Sandbox Code Playgroud)
public static HistoryOrder historyOrderItem = new HistoryOrder();
我还将我的代码中的所有引用从app.Fragment更改为support.v4.app.Fragment版本,因为我认为这导致了问题.
有线索吗?
java.lang.NoClassDefFoundError可以抛出,因为你达到了65k的限制http://developer.android.com/tools/building/multidex.html#about
如果您需要超过65k限制,则必须包含multidex支持
gradle这个:
defaultConfig {
...
multiDexEnabled true
}
...
dependencies {
compile 'com.android.support:multidex:1.0.1'
...
}
Run Code Online (Sandbox Code Playgroud)
表现:
<application
...
android:name="android.support.multidex.MultiDexApplication">
Run Code Online (Sandbox Code Playgroud)
如果您有自定义应用程序类:
extend MultiDexApplication 或添加MultiDex.install(getBaseContext());到您的CustomApplication onCreate()
请注意,在某些低端设备上添加
MultiDex.install(getBaseContext());到CustomApplicationonCreate()仍然可以抛出java.lang.NoClassDefFoundError:
如果是这样尝试添加MultiDex.install到 attachBaseContext(Context base)代替
public class CustomApplication extends Application {
...
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |