色々試してみましたが問題は解決しませんでした。
完全なエラーコード(kompletterエラーコード):
05-16 09:59:53.428 25010-25010/main.faseflex.de.fgnapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: main.faseflex.de.fgnapp, PID: 25010
Java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/Android/gms/common/R$string;
at com.google.Android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:14)
at com.google.firebase.FirebaseOptions.fromResource(Unknown Source:2)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:19)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1925)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1900)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23)
at Android.app.ActivityThread.installProvider(ActivityThread.Java:6578)
at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:6133)
at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:6043)
at Android.app.ActivityThread.-wrap1(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1764)
at Android.os.Handler.dispatchMessage(Handler.Java:105)
at Android.os.Looper.loop(Looper.Java:164)
at Android.app.ActivityThread.main(ActivityThread.Java:6944)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:327)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1374)
Caused by: Java.lang.ClassNotFoundException: Didn't find class "com.google.Android.gms.common.R$string" on path: DexPathList[[Zip file "/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/base.apk"],nativeLibraryDirectories=[/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/lib/arm64, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:93)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:379)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)
at com.google.Android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:14)
at com.google.firebase.FirebaseOptions.fromResource(Unknown Source:2)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:19)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1925)
at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1900)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23)
at Android.app.ActivityThread.installProvider(ActivityThread.Java:6578)
at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:6133)
at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:6043)
at Android.app.ActivityThread.-wrap1(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1764)
at Android.os.Handler.dispatchMessage(Handler.Java:105)
at Android.os.Looper.loop(Looper.Java:164)
at Android.app.ActivityThread.main(ActivityThread.Java:6944)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:327)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1374)
build.gradleアプリ:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 25
//buildToolsVersion "25.0.2"
defaultConfig {
applicationId "main.faseflex.de.fgnapp"
minSdkVersion 21
targetSdkVersion 25
multiDexEnabled true
dexOptions {
preDexLibraries true
}
versionCode 1
versionName "0.98.41"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
multiDexKeepFile file('multidex-config.txt')
}
}
productFlavors {
}
}
dependencies {
implementation 'com.Android.support:support-v4:25.4.0'
implementation 'com.Android.support:support-vector-drawable:25.4.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
implementation 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.google.firebase:firebase-database:15.0.1'
implementation 'com.google.firebase:firebase-auth:15.1.0'
implementation 'com.Android.support:appcompat-v7:25.4.0'
implementation 'com.Android.support:design:25.4.0'
implementation 'com.Android.support:preference-v7:25.4.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
implementation 'com.github.SHashank02051997:FancyToast-Android:0.1.3'
implementation 'com.Android.support:multidex:1.0.3'
implementation 'com.google.Android.gms:play-services-auth:15.0.1'
testImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.0'
}
}
}
}
build.gradleプロジェクト:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
maven {
url "https://jitpack.io"
}
maven {
url "https://maven.google.com"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
AndroidManifest.xml:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
package="main.faseflex.de.fgnapp"
tools:node="replace">
<supports-screens
Android:anyDensity="true"
Android:compatibleWidthLimitDp="50"
Android:largeScreens="true"
Android:normalScreens="true"
Android:resizeable="false"
Android:smallScreens="false"
Android:xlargeScreens="false" />
<uses-permission Android:name="Android.permission.INTERNET" />
<application
Android:allowBackup="true"
Android:icon="@mipmap/fgn_icon"
Android:label="@string/app_name"
Android:resizeableActivity="false"
Android:roundIcon="@mipmap/fgn_icon"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
------------------------------------------------
MAIN ACTIVITY
------------------------------------------------
<activity
Android:name=".FGNmainActivity"
Android:label="FGN-App"
Android:screenOrientation="portrait">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.DEFAULT" />
</intent-filter>
</activity>
------------------------------------------------
STUNDENPLAN
------------------------------------------------
<activity
Android:name=".activity_timetable"
Android:label="FGN-App | Stundenplan"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
ESSENSBESTELLUNG
------------------------------------------------
<activity
Android:name=".activity_food"
Android:label="FGN-App | Essenplan"
Android:parentActivityName=".FGNmainActivity"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
MDV
------------------------------------------------
<activity
Android:name=".activity_mdv"
Android:label="FGN-App | Verkehrsverbund"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
DOKUMENTE
------------------------------------------------
<activity
Android:name=".activity_documents"
Android:label="FGN-App | Dokumente"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
NEWS
------------------------------------------------
<activity
Android:name=".activity_news"
Android:label="FGN-App | News"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
LEHRER
------------------------------------------------
<activity
Android:name=".activity_teachers"
Android:label="FGN-App | Lehrer"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
MOODLE
------------------------------------------------
<activity
Android:name=".activity_moodle"
Android:label="FGN-App | Moodle"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
Office 365
------------------------------------------------
<activity
Android:name=".activity_office"
Android:label="FGN-App | Office 365"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
KONTAKT
------------------------------------------------
<activity
Android:name=".activity_contact"
Android:label="FGN-App | Kontakt"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
TERMINE
------------------------------------------------
<activity
Android:name=".activity_termine"
Android:label="FGN-App | Termine"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
MITTAGSBAND
------------------------------------------------
<activity
Android:name=".activity_mittagsband"
Android:label="FGN-App | Mittagsband"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.APP_BROWSER" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
FEEDBACK
------------------------------------------------
<activity
Android:name=".activity_menu_feedback"
Android:label="FGN-App | Feedback"
Android:parentActivityName=".SettingsActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.DEFAULT" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
IMPRESSUM
------------------------------------------------
<activity
Android:name=".activity_menu_impressum"
Android:label="FGN-App | Impressum"
Android:parentActivityName=".FGNmainActivity"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme">
<intent-filter>
<category Android:name="Android.intent.category.DEFAULT" />
<action Android:name="Android.intent.action.MAIN" />
</intent-filter>
</activity>
------------------------------------------------
FIREBASE
------------------------------------------------
<service Android:name=".MyFirebaseMessagingService">
<intent-filter>
<action Android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service Android:name=".FirebaseIDService">
<intent-filter>
<action Android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service Android:name=".MyInstanceIDListenerService">
<intent-filter>
<action Android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
------------------------------------------------
EINSTELLUNGEN
------------------------------------------------
<activity
Android:name=".SettingsActivity"
Android:label="FGN-App | Einstellungen"
Android:parentActivityName=".FGNmainActivity">
<meta-data
Android:name="Android.support.PARENT_ACTIVITY"
Android:value="main.faseflex.de.fgnapp.FGNmainActivity" />
</activity>
------------------------------------------------
SPLASH SCREEN
------------------------------------------------
<activity
Android:name=".SplashActivity"
Android:screenOrientation="portrait">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
------------------------------------------------
CHANGELOG
------------------------------------------------
<activity
Android:name=".ChangelogActivity"
Android:label="FGN-App | Changelog"
Android:parentActivityName=".SettingsActivity"></activity>
</application>
</manifest>
NoClassDefFoundErrorの機能は知っていますが、問題は見つかりませんでした。問題を解決するためにさらにファイルが必要かどうかを尋ねます。
私は同様の問題に直面しましたアップデート後Android Studioを3.6にGradle 3.6.で。
I downgraded my Gradle to 3.5.今後この問題が修正されるまでこの問題を解決するため。
手順:
build.gradle(Project: Project_name_here)
ファイルを開きます。classpath 'com.Android.tools.build:gradle:3.5.3'
_
注意:これは一時的な修正です。今後修正される可能性があるため、それまではアプリをダウングレードして続行してください。
[〜#〜]または[〜#〜]
アプリでレルムプラグインを使用している場合は、プラグインのアップグレードを試すことができます。これは、実行中にアプリがクラッシュした理由の1つでした。
レルムプラグインを更新する手順:
build.gradle(Project: Project_name_here)
ファイルを開きます。classpath "io.realm:realm-gradle-plugin:6.0.2"
_
また、アプリがクラッシュする理由の1つである可能性があるため、_build.gradle
_ファイル内の古いプラグインを確認してください。
プロジェクトをGradle 3.6.0
に更新し、Realmを使用している場合、この問題はレルムプラグイン。 this コメントに応じて、この問題は5.13.1
より前の古いRealmプラグインバージョンで発生します。そのため、最新のRealmバージョンに更新するだけで問題が解決する可能性があります。
執筆時点では次のとおりです:classpath "io.realm:realm-gradle-plugin:6.1.0"
realm-db
により、これに遭遇しました
Gradleのアルファビルドと他のいくつかのプロジェクト固有の状況(AndroidX、Kotlin)にあったため、これは一般的な問題ではありませんが、確認する必要のあるもう1つの問題です
プロジェクトからすべてのfirebaseとgmsの依存関係を削除すると、leakcanaryでエラーが発生するため、これを削除します。そして、再びcalligraphy3などでエラーが発生します... multidexのバグだと思います。