mik*_*396 13 android android-lifecycle android-support-library
我只在Android SDK <5.0上收到此错误.所以4.0,4.2,4.3等.运行Android 5.0+的任何东西都能完美运行.有任何想法吗?发射时崩溃.
按照本指南进行设置 - > https://developer.android.com/topic/libraries/architecture/adding-components.html
App.java
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleListener(this));
registerActivityLifecycleCallbacks(this);
}
Run Code Online (Sandbox Code Playgroud)
AppLifecycleListener.java
public class AppLifecycleListener implements LifecycleObserver {
private App app;
public AppLifecycleListener(App app)
{
this.app = app;
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onMoveToForeground() {
if (app.getCurrentActivity() instanceof BaseActivity)
{
BaseActivity baseActivity = (BaseActivity) app.getCurrentActivity();
baseActivity.runIsAPIVersionCheck();
baseActivity.fetchObjectsWithHUD(false);
}
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onMoveToBackground() {}
Run Code Online (Sandbox Code Playgroud)
}
摇篮
compileSdkVersion 26
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
applicationId "app"
minSdkVersion 16
targetSdkVersion 26
versionCode 71
versionName "4.9.9"
multiDexEnabled true
resConfigs "en"
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'android.arch.lifecycle:extensions:1.1.0'
compile 'android.arch.lifecycle:compiler:1.1.0'
Run Code Online (Sandbox Code Playgroud)
02-28 20:54:03.151 2558-2558 /?E/AndroidRuntime:FATAL EXCEPTION:main java.lang.RuntimeException:无法获取提供者android.arch.lifecycle.ProcessLifecycleOwnerInitializer:java.lang.ClassNotFoundException:android.app.ArocessThread.installProvider中的android.arch.lifecycle.ProcessLifecycleOwnerInitializer(ActivityThread. java:4563)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132)的android.app.ActivityThread.installContentProviders(ActivityThread.java:4190)android.app.ActivityThread.access $ 1300(ActivityThread.java:130)在android.app.A.运行Android.os.Holer.loop(Looper.java:137)的android.app.A.运行时,运行android.app.A.运行时,运行android.app.Ath app.ActivityThread.main(ActivityThread.java:4745)位于com.android.internal的java.lang.reflect.Method.invoke(Method.java:511)的java.lang.reflect.Method.invokeNative(Native Method)中. os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)at dalvik.system.NativeStart.main(Native Method)引起:java.lang.ClassNotFoundException:android.arch.lifecycle.ProcessLifecycleOwnerInitializer at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)at java.lang.ClassLoader.loadClass(ClassLoader.java:501)位于android.app.ActivityThread的android.app.ActivityThread.installProvider(ActivityThread.java:4548)的java.lang.ClassLoader.loadClass(ClassLoader.java:461) android.app.ActivityThread $ 3.handleMessage上android.app.ActivityThread.access $ 1300(ActivityThread.java:130)的android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132)上的.installContentProviders(ActivityThread.java:4190) (ActivityThread.java:1255)android.app.Handler.dispatchMessage(Handler.java:99)android.app.Looper.loop(Looper.java:137)android.app.ActivityThread.main(ActivityThread.java: 4745)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:511)at co m.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)at dalvik.system.NativeStart.main(Native Method) )
mik*_*396 22
这最终成为一个多指数问题.我按照这里的文档 - > https://developer.android.com/studio/build/multidex.html#mdex-gradle,现在效果很好!
摇篮:
implementation 'com.android.support:multidex:1.0.3'
Run Code Online (Sandbox Code Playgroud)
App.java:
public class App extends Application implements Application.ActivityLifecycleCallbacks {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Run Code Online (Sandbox Code Playgroud)
我要做的就是将以下内容添加到我的proguard-rules.pro
文件中:
-keep class android.arch.lifecycle.** {*;}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6982 次 |
最近记录: |