gpt4 book ai didi

安卓错误: dalvik. system.BaseDexClassLoader.findClass

转载 作者:行者123 更新时间:2023-11-29 23:22:48 29 4
gpt4 key购买 nike

目前在我的生产应用中我注意到这个错误:

java.lang.RuntimeException: 
at android.app.ActivityThread.handleReceiver (ActivityThread.java:2648)
at android.app.ActivityThread.access$1700 (ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1359)
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)

发现是因为库冲突。我正在使用大约 7 个,它们都是应用程序正常运行所必需的。我执行了 ./gradlew app:dependencies 并看到了一堆冲突(主要是 android.supportgoogle-services)并且我现在必须使用排除标记来解决它们。

我的问题是如何正确设置正确的版本?我是强制所有库都使用某个库的最小版本,还是只强制所有库使用最新版本?

对于菜鸟问题​​,我很抱歉,我对 android 中的 managin 库还很陌生。

编辑:更多的堆栈跟踪

Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:497)
at java.lang.ClassLoader.loadClass (ClassLoader.java:457)
at android.app.ActivityThread.handleReceiver (ActivityThread.java:2643)

还有一个 similar error但具有不同的堆栈跟踪。

app/build.gradle:

project.ext.react = [
entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
compileSdkVersion 28
buildToolsVersion "28.0.2"

defaultConfig {
applicationId "com.lisdoworker"
minSdkVersion 18
targetSdkVersion 28
versionCode 15
versionName "1.1"
ndk {
abiFilters "armeabi-v7a", "x86"
}
manifestPlaceholders = [
tipsiStripeRedirectScheme: "example"
]
multiDexEnabled true
}
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
dexOptions {
jumboMode true
}
}

dependencies {
// react-native-firebase
implementation project(':react-native-firebase')

implementation "com.google.firebase:firebase-core:16.0.4"
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation 'me.leolin:ShortcutBadger:1.1.21@aar'

implementation(project(':react-native-google-places')){
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-places'
exclude group: 'com.google.android.gms', module: 'play-services-location'
}

implementation 'com.google.android.gms:play-services-base:16.+'
implementation 'com.google.android.gms:play-services-places:16.+'
implementation 'com.google.android.gms:play-services-location:16.+'
implementation 'com.google.android.gms:play-services-wallet:16.+'
implementation 'com.google.android.gms:play-services-identity:16.+'

implementation project(':tipsi-stripe')
implementation project(':react-native-linear-gradient')
implementation project(':react-native-fast-image')

implementation project(':react-native-vector-icons')
implementation project(':react-native-image-picker')
implementation project(':react-native-fetch-blob')
implementation project(':react-native-fbsdk')

implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:27.1.0"

implementation "com.facebook.react:react-native:+" // From node_modules
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}

apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

最佳答案

由于 minSdkVersion 18,您必须添加对 com.android.support:multidex:1.0.3 的依赖才能获得正确的 Dalvik VM支持。

Manifest.xml 也需要引用 Application 类。

并回答实际问题;首先删除这一行:

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

然后将 buildToolsVersion 更新为 28.0.3 并删除这些 16.+ 版本号。

+ 表示法相比,静态版本号会产生可重现的结果。与此类似,必须手动更新这些版本号 - 但至少知道更新了哪个版本号以及必须恢复到哪个版本号,以防出现问题(这是值得的努力)。

com.android.support:appcompat-v7:27.1.0 也可以更新到 28.0.0

之后 Android Studio 应该用红色强调一些依赖关系 - 提供可能需要排除 com.google.android.gmscom.android.support 的线索- 或添加。例如。 support-v4 是排除的常见候选者 - 但必须在匹配版本中添加它。

关于安卓错误: dalvik. system.BaseDexClassLoader.findClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982361/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com