在具有Android 4.4的设备上运行具有'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'
和'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03'
依赖性的应用程序时出错。
在装有Android 6的设备上工作正常
应用因错误而崩溃
java.lang.RuntimeException: Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/***********, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:5052)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4623)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4563)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/********, /vendor/lib, /system/lib]]
答案 0 :(得分:4)
对于Kotlin,请将其添加到您的gradle中:
kotlinOptions {
jvmTarget = '1.8'
}
compileOptions {
targetCompatibility = "8"
sourceCompatibility = "8"
}
答案 1 :(得分:3)
这是一个敏捷问题。在Android 4.4中
1-在应用程序gradle中,在defaultConfig内启用multidex
defaultConfig{
....
multiDexEnabled true
}
2-要在其他版本中支持multidex,请将此依赖项添加到您的应用gradle中
implementation 'com.android.support:multidex:1.0.3'
3-如果您具有扩展Application的类,请使其扩展
MultiDexApplication
如果不这样做,请将其添加到应用程序标记内的清单文件中
android:name="android.support.multidex.MultiDexApplication"
就是这样。为我工作
答案 2 :(得分:1)
您可以找到有关Multidex here的官方文档。使用此链接来检查最新的multidex gradle依赖版本。
如果您使用的是AndroidX
from bs4 import BeautifulSoup
from selenium import webdriver
url = 'https://imgur.com/t/lenovo/mLwnorj'
browser = webdriver.Firefox()
browser.get(url)
soup = BeautifulSoup(browser.page_source, 'html.parser')
images = soup.find_all('img', {'class': 'post-image-placeholder'})
[print(image['src']) for image in images]
# //i.imgur.com/JfLsH5yr.jpg
# //i.imgur.com/lLcKMBzr.jpg
否则使用
dependencies {
def multidex_version = "2.0.1" // Check this from the link
implementation 'androidx.multidex:multidex:$multidex_version'
}
答案 3 :(得分:1)
就我而言,Pie(Android9)上的Android捆绑包以某种方式省略了android体系结构生命周期文件。因此,我在proguard-rules.pro
中添加了keep语句,以保持一致对于AndroidX:
-keep class androidx.lifecycle.** {*;}
获得支持:
-keep class android.arch.lifecycle.** {*;}
答案 4 :(得分:0)
对我来说,以上方法均无效。也重新启动并无效没有做任何事情。 卸载应用程序并“构建>清理项目”后,一切正常。