Android ClassNotFoundException: Klasse im Pfad nicht gefunden

97
10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561):     ... 11 more

Ich bin mir nicht sicher, was es verursacht, da es im Manifest korrekt aufgeführt ist:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gvg.simid"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-feature android:name="android.hardware.usb.host" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.gvg.simid.Login"
            android:label="@string/app_name" 
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Ich habe auch "Android Private Libraries" hinzugefügt, um den Pfad zu erstellen, und ihn an die Spitze von "Order and Export" verschoben, aber es gab mir immer noch den gleichen Fehler.

BEARBEITEN: Ich habe das Projekt komplett neu erstellt und konnte den Fehler nicht reproduzieren. Ich bin mir nicht sicher, was es verursacht hat.

Phito
quelle
2
Benutzt du Proguard?
Juangcg
Proguard ist nicht aktiviert.
Phito
Überprüfen Sie diesen Beitrag: stackoverflow.com/questions/10866431/…
Juangcg
Versuchen Sie stattdessen ".Login" in android: name. Android hängt den Rest des Präfixes selbst an, wenn es es nicht erkennen kann. Könnte nur ein seltsames Parsing-Problem mit Eclipse sein
Darryl Bayliss
@Juangcg Ich habe diesen Beitrag gelesen, bevor ich diesen gemacht habe, aber leider hat alles, was ich von dort aus versucht habe, nicht funktioniert.
Phito

Antworten:

76

Ich hatte das gleiche Problem für mein Projekt. Dies geschah aufgrund des Konflikts in der Android-Support-Bibliotheksversion zwischen meinem Projekt und dem Bibliotheksprojekt, das ich in meinem Projekt hinzugefügt habe. Fügen Sie die gleiche Version der Android-Unterstützungsbibliothek in Ihr Projekt und die Bibliotheksprojekte ein, die Sie aufgenommen haben, und erstellen Sie sie sauber ... Alles wird funktionieren ...

Balaji Dhanasekar
quelle
3
Danke, Mann!!! Ich war mir sicher, dass ich es bereits getan hatte, aber ich habe es überprüft und die Versionen waren unterschiedlich! Vielen Dank!
Rodrigo Venancio
2
Ich kommentiere dies, um mich an das nächste Mal zu erinnern, um SDK zu "aktualisieren". Sehen Sie sich diese Antwort an
Enrique San Martín
1
Irgendwelche Ideen, warum Probleme auftreten, wenn ich keine Support-Bibliotheken verwende?
Budda
33

Diese folgende Methode hat bei mir funktioniert

  • Klicken Sie mit der rechten Maustaste auf projectund wählen Sieproperties
  • Das Fenster "Eigenschaften für" wird geöffnet. Gehen Sie im Menü links zu Java Build Path->Order and Export
  • Deaktivieren Sie in der folgenden Liste das Kontrollkästchen neben "Android Dependencies"
  • Endlich clean your projectund rennen
Chris
quelle
8
Das hat bei mir funktioniert. Was bedeutet "Android-Abhängigkeiten" und warum hat es in diesem speziellen Fall geholfen?
Oleg Gryb
Hat perfekt für mich funktioniert! Vielen Dank!
Prajitdas
7
Sind diese Anweisungen für Eclipse? Ich kann diese Anweisungen für Android Studio nicht befolgen. Was ist mein project? Was bedeutet das?
Adam Johns
1
Ja, diese Anweisungen sind für Eclipse
Chris
2
Dieser Link hat Schritte für Android Studio stackoverflow.com/questions/18533054/…
Joseph Selvaraj
13

Für diejenigen unter Ihnen, die dieses Problem in Android Studio haben, hatte ich das gleiche Problem nach einer Zusammenführung und aus irgendeinem Grund blieb es sogar nach cleanund invalidate cash/restartOperationen bestehen, die mich verrückt machten.

Es stellt sich heraus, dass dies behoben werden kann, indem gradle build einmal über die Befehlszeile ausgeführt wird. Führen Sie einfach Folgendes im Projektverzeichnis aus:

./gradlew assemble clean
./gradlew assemble

Ich hoffe, es würde jemandem die Zeitverschwendung und Frustration ersparen, die ich durchmachen musste.

Iman Akbari
quelle
Arbeitete auch für mich
davedavedave
12

Ich hatte das gleiche Problem, das hat bei mir funktioniert

1) Vollständiger Aktivitätspfad im Hauptfest anstelle des relativen Pfades.

2) Löschen Sie den Ordner 'build' und bereinigen Sie das Projekt.

Ram Mehar Deswal
quelle
Das Löschen des Build-Ordners hat bei mir funktioniert. Ich habe ein paar Stunden in dieser Angelegenheit verloren. Danke
Guy S
Hat auch für mich gearbeitet. Vielen Dank.
Dushyant Suthar
Das ist der wahre Deal. XD
Noob-Sci-Bot
9

Wenn Sie Eclipse verwenden, versuchen Sie Projekt -> Bereinigen

Danilo Silva
quelle
Funktioniert für Android Studio - Clean / Rebuild Projekt und laufen
frcake
7

Dies geschieht, wenn wir den Erstellungspfad der APP ändern. Dies kann in jedem Fall das Hinzufügen oder Entfernen oder Ändern von Bibliotheken oder JAR-Dateien sein. Die beste Lösung besteht darin, die Eclipse neu zu starten.

PionierBhawna
quelle
7

Wenn Sie Library ProjectIhrem Android-Projekt ein neues Modul hinzugefügt haben und es Kotlinin Ihrer Bibliothek verwenden, vergessen Sie nicht, es hinzuzufügen

apply plugin: 'kotlin-android'

an den Anfang der Gradle-Datei Ihres Moduls. Android Studio fügt diese Zeile nicht hinzu, wenn Sie ein neues Modul erstellt haben, und dies kann Ihre Stunden wie ich verschwenden.

Bearbeiten: Nach einer Weile hatte ich wieder Probleme mit diesem Problem und dieses Mal vergaß ich, mein Modul als Abhängigkeit vom Projekt hinzuzufügen. :) :)

Savepopulation
quelle
Es wurde für mich gelöst und ich wollte nur eine Antwort posten. Wer springt auf Seite zwei von SO, um eine Lösung zu finden?
Kuno
Dieses Problem tritt auf, wenn wir ein Java-Bibliotheksprojekt verwenden ... diese Lösung hat mein Problem
behoben
6

Wenn Sie diesen Fehler erhalten, während Sie die neue Instant Run-Funktion in Android Studio 2.0 und höher verwenden, ist dies eine Art Fehler auf ihrer Seite.
Um dies zu beheben, müssen Sie Ihre App manuell auf dem Gerät / Emulator stoppen, wenn sie nicht gestoppt ist, und dann in Android Studio auswählenBuildRebuild Project .
Klicken Sie dann auf die Schaltfläche Ausführen oder UMSCHALT + F10

vovahost
quelle
6

Für jeden, der Multidex aktiviert hat, schreiben Sie dies

innerhalb von build.gradle

apply plugin: 'com.android.application'

android {
 defaultConfig {
      multiDexEnabled true
  }
 dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
}

schreibe eine Klasse EnableMultiDexwie unten

import android.content.Context;
import android.support.multidex.MultiDexApplication;

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

und AndroidManifest.xmlschreiben Sie diesen Klassennamen in das Application-Tag

 <application
    android:name="YourPakageName.EnableMultiDex"
    android:hardwareAccelerated="true"
    android:icon="@drawable/wowio_launch_logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    tools:node="replace">
Manohar Reddy
quelle
ohhhhh mahn ... perfekte Antwort ... ich habe diese Antwort gesehen, aber niemand hat abgestimmt, also habe ich diese vernachlässigt und mich für abgestimmte Antworten entschieden, aber nicht funktioniert ... schließlich habe ich diese nur getestet und ich habe sie bekommen, danke mahn. :) :) :) :)
Sachin Varma
froh, dass es geholfen hat :)
Manohar Reddy
2
Der Hauptpunkt ist, die Anwendung von MultiDexApplicationKlasse zu Klasse zu erweitern Application.
VSB
Vielen Dank. Ich hatte bereits eine Bewerbung im Manifest. Erweitert von MultiDexApplicationund Ausnahme auf Android 4.4 verschwunden.
CoolMind
6

Wenn Sie Multidex unter Android 4.4 und früheren Versionen verwenden , besteht das Problem möglicherweise darin, dass sich Ihre Aktivitätsklasse in der zweiten Dex-Datei befindet und daher vom Android-System nicht gefunden wird.

Informationen zum Beibehalten Ihrer Aktivitätsklasse in der Haupt-Dex-Datei finden Sie auf dieser Seite:

https://developer.android.com/studio/build/multidex.html#keep


Verwenden Sie Android Studio, um herauszufinden, welche Klassen sich in einer Dex-Datei befinden .

Ziehen Sie Ihre apk einfach per Drag & Drop in Android Studio. Sie sollten in der Lage sein, Ihre Dex-Dateien im apk-Explorer zu sehen.

Wählen Sie dann die Dex-Datei aus, um zu sehen, welche Klassen sich darin befinden.


Eine andere Alternative ist Dexdump:

Sie können den Inhalt Ihrer in Ihrer apk enthaltenen Dex-Dateien mit dem Befehl dexdump überprüfen, der sich in befindet

android-sdk / build-tools / 27.0.3 / dexdump

Für Windows-Benutzer siehe dieses Tool, das ich erstellt habe, um den Prozess zu vereinfachen

BenBenMushi
quelle
1
Stellen Sie beim Verknüpfen Ihres eigenen Tools sicher, dass Sie es besitzen .
LW001
5

In meinem Fall war es der Proguard-Minimierungsprozess, der einige wichtige Klassen aus meiner Produktions-Apk entfernte.

Die Lösung bestand darin, die Datei proguard-rules.pro zu bearbeiten und Folgendes hinzuzufügen:

-keep class com.someimportant3rdpartypackage.** { *; }
Sei frei
quelle
3

1) Erstellen Sie libs Ordner unter Projektstamm
2) Kopieren Sie die JAR - Datei in das
3) Konfigurieren Sie den Build - Pfad (Add jar)
4) Sauber und laufen

prost :-)

Mohanraj Balasubramaniam
quelle
3

Ob Sie es glauben oder nicht ... Ich habe fast jede Antwort ausprobiert, die ich hier auf stackoverflow gefunden hatte. Nichts würde helfen, bis ich gerade die Maschine neu gestartet habe. Mein Android Studio funktioniert unter Ubuntu 16.04 LTS.

Piotr Miller
quelle
Gleiches hier, alles versucht und nach deinem Kommentar neu gestartet. Ich sah in meiner Ausgabe einen Verweis auf einen überarbeiteten Klassennamen, der "Konnte nicht gefunden werden", obwohl ich den gesamten Build-Ordner löschte. Ich starte gerade Android
Alwin Kesler
2

Dieser Fehler trat einmal auf, als ich eine Klasse definierte, die eine Ansicht erweiterte, aber auf diese benutzerdefinierte Ansicht in der Layoutdatei mit dem falschen Namen verwies. Stattdessen <com.example.customview/>hatte ich <com.customview/>in die XML-Layoutdatei aufgenommen.

Preis
quelle
2

Ich stand vor dem gleichen Problem und löste es wie folgt:

Wählen Sie im Build-Menü die Option

1- Projekt reinigen.

2- APK erstellen.

Aaeb
quelle
Ich verbringe immer Stunden damit, nach einer Lösung für SO zu suchen, und es stellt sich heraus, dass Clean -> Build alles ist, was ich tun musste.
Shishir Shetty
2

Ich habe das gleiche Problem festgestellt und festgestellt, dass der Beispielcode im Verzeichnis "java" anstelle des Verzeichnisses "src" abgelegt wurde. Nach dem Verschieben des Codes nach src wurde das Problem behoben.

Stellen Sie außerdem sicher, dass das App-Verzeichnis in mehrere Ordner aufgeteilt ist. zB /main/com/site/appname/nicht/main/com.site.appname/

Hoffe es funktioniert ~

Weiweia
quelle
Du hast das Problem, das ich hatte, auf den Kopf getroffen! Nicht genug Schlaf, nicht einmal
bemerkt
2

Ich habe das gleiche Problem und nach viel Arbeit und Suche habe ich die Lösung gefunden: Ich habe gerade das Projekt bereinigt und dann die apk erstellt. -Build-> Clean Project -Build-> Build APK (s) Ich hoffe es ist nützlich .....

Mohamad Abdallah
quelle
1

Ich hatte dieses Problem vor kurzem und ich verwende Android Studio 0.8.4

Das Problem war die Tatsache, dass ich beschlossen habe, eine XML-Menü-Layoutdatei mit dem Namen main.xml umzubenennen.

Klicken Sie mit der rechten Maustaste darauf und wählen Sie Refactor -> Rename . Deaktivieren Sie vor dem Umbenennen unbedingt "In Kommentaren und Zeichenfolgen suchen " und drücken Sie " Refactor" .

Da meine Datei ursprünglich den Namen 'main' hatte , wurden kritische Pfade in app.iml und build.gradle umbenannt, hauptsächlich java.srcDirs in build.gradle, da der Pfad als definiert ist 'src/main/java'.

Ich hoffe, dies hilft jedem, der dieses Problem hat.

GoranZarkovic
quelle
1

Ich hatte dieses Problem nach dem Upgrade von Version 18. Nach dem Upgrade hatte ich Folgendes: Project Build Target war 5.01, targetSDKVersion = 21

Aber: Build Tools waren immer noch von Android 4.3.1 (18). Ich bemerkte, dass die Apps, die ihre Aktivitäten von ActionBarActivity ableiteten, mit dem oben genannten Fehler abstürzten, die noch nicht ausgeführt wurden.

Die einfache Lösung bestand darin, die neuesten Android SDK Build Tools 21.1.2 anstelle nur der Android SDK Build Tools 18 zu verwenden, was irgendwie die Standardeinstellung zu sein scheint.

Der Schuldige scheint also die Appcompat-Bibliothek zu sein, die ich für die Abwärtskompatibilität der Actionbar verwende.

Und durch die Art und Weise : die appcompat Bibliothek ich zu setzen / fix hatte: $SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties target=android-21(die in einem anderen nützlichen Beitrag empfohlen wurde und die einen Wert von 19 in der Standardeinstellung))

Peter Rudnik
quelle
1

Ich hatte das gleiche Problem unter Windows. Ich hatte den Pfad zum Projekt in etwas umbenannt, das ein Leerzeichen enthielt.

Stellen Sie sicher, dass der Pfad zu Ihrem Projekt kein Leerzeichen enthält.

Vincent Hubert
quelle
Über welchen Weg sprichst du?
Qualitätskatalysator
1

Hier erwähnte Lösung -> Multidex Issue-Lösung hat bei mir funktioniert. Im Folgenden muss Folgendes zum Anwendungskontext hinzugefügt werden:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}
Pranaysharma
quelle
0

Ich hatte dieses Problem, das aus verschiedenen Gründen **Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[**aufgetreten ist , aber ich sehe es in Ihrem Stacktrace " ". Ich habe einen Unterschied in meinem gefunden, .classpathbevor es nicht mehr funktioniert.

 <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Ich habe die Zeile hinzugefügt:

<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>

Dies ist die endgültige Version:

  <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Jetzt gehts! =)

Jorgesys
quelle
0

Ich hatte genau das gleiche Problem. Wie von @weiweia vorgeschlagen, verschieben Sie den Code aus dem Java-Verzeichnis in src, was für mich funktioniert hat. Ich habe auch die Android-Abhängigkeiten aus Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bestellen und Exportieren entfernt und sichergestellt, dass nur Bibliotheksprojekte in den Android-Bildschirm aufgenommen werden.

bran.io
quelle
0

Ich hatte dieses Problem eine ganze Weile und wie alle anderen galten die obigen Antworten nicht für mein Projekt.

In meinem Projekt hatte ich ein Projekt mit meinem Projekt verknüpft und es löste jedes Mal ClassDefNotFoundError aus, wenn Code für das andere Projekt ausgeführt wurde.

Das war also meine Lösung. Ich ging zu den Projekteigenschaften meines Projekts und des Java-Erstellungspfads. Drückte die "Source" -Tab und "Link Source" vom src-Ordner des anderen Projekts zu meinem eigenen Projekt und benannte einen neuen Ordner "core-src".

Hoffe, diese Lösung hilft jemandem

user3906863
quelle
0

Ich hatte das gleiche Problem. Ich benutze Xamarin.Android.

Das Problem in meinem Fall war, dass ich den versionCode und den versionName geändert habe.

Ich hatte kein Problem, als ich sie so einstellen ließ:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pac.ka.ge" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">

Das Problem trat auf, als ich es in dieses geändert habe (versionCode 2 und versionName 0.0.1):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="0.0.1" android:installLocation="auto">

Ich habe das Problem behoben, indem ich zu versionCode 2 und versionName 1.0.0.1 gewechselt habe:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="1.0.0.1" android:installLocation="auto">

Ich bin mir nicht sicher, warum dies ein Problem war. Vielleicht mag Android keinen niedrigeren Versionsnamen mit einem höheren Versionscode?

Ich habe Folgendes unter http://developer.android.com/guide/topics/manifest/manifest-element.html#vname gefunden

android: versionCode Eine interne Versionsnummer. Diese Nummer wird nur verwendet, um zu bestimmen, ob eine Version aktueller als eine andere ist, wobei höhere Nummern neuere Versionen anzeigen. Dies ist nicht die Versionsnummer, die den Benutzern angezeigt wird. Diese Nummer wird durch das Attribut versionName festgelegt. Der Wert muss als Ganzzahl festgelegt werden, z. B. "100". Sie können es definieren, wie Sie möchten, solange jede nachfolgende Version eine höhere Nummer hat. Zum Beispiel könnte es eine Build-Nummer sein. Oder Sie können eine Versionsnummer im "xy" -Format in eine Ganzzahl übersetzen, indem Sie "x" und "y" getrennt in den unteren und oberen 16 Bits codieren. Oder Sie können die Anzahl bei jeder Veröffentlichung einer neuen Version einfach um eins erhöhen.

android: versionName Die Versionsnummer, die den Benutzern angezeigt wird. Dieses Attribut kann als Rohzeichenfolge oder als Referenz auf eine Zeichenfolgenressource festgelegt werden. Die Zeichenfolge hat keinen anderen Zweck als den Benutzern angezeigt zu werden. Das versionCode-Attribut enthält die intern verwendete signifikante Versionsnummer.

PeterH
quelle
0

Nur für den Fall, dass jemand vor dem gleichen Problem steht wie ich und keine Antwort hier hilft.

Für mich war die Ursache, dass der Android Studio Refactor fehlerhaft ist. Ich habe eine innere Klasse außerhalb einer Klasse verschoben, die eine Ansicht war und daher auch eine XML-Datei hatte, in der der direkte Pfad festgelegt wurde. Dieser Weg wird vom Studio nicht umgestaltet! Und es wird kein Fehler ausgegeben.

Hoffe das hilft jedem. Prost.

JacksOnF1re
quelle
0

In unserem Fall wollten wir die Vagrant-Version kompilieren und hatten den gleichen Fehler. Wir haben es durch clean projectund rebuild projectim Build-Menü behoben

Rafael
quelle
0

Ich habe gerade das Gerät neu gestartet und die App ausgeführt. Es hat ohne Probleme funktioniert. Hoffe das hilft jemandem :)

Kameswari
quelle
0

Ich habe diesen Fehler in Android Studio gefunden, als ich versucht habe, in einem Gerät mit API 23 zu debuggen. Daher habe ich Android Studio überprüft und festgestellt, dass ich diese API 23-Version nicht installiert habe . Nach der Installation habe ich das Problem gelöst.

Rodrigo Celebrone
quelle
0

Ich hatte dieses Problem mehrmals und oft habe ich mit Abhängigkeiten offensichtlich nichts falsch gemacht.

Es ist immer eine gute Idee zu überprüfen, ob diese 'nicht gefundene' Klasse in der endgültigen apk vorhanden ist. Wenn es so ist, wie es in meinen Fällen passiert ist, ist das Problem normalerweise:

Es ist nicht so, dass eine bestimmte Klasse nicht gefunden wird, aber sie kann nicht geladen werden, da ihre Superklasse fehlt.

Überprüfen Sie, ob die von Ihnen erweiterte Klasse verfügbar ist, und versuchen Sie dann, Ihr Build-Skript oder Ihre Abhängigkeiten entsprechend zu korrigieren.

michalbrz
quelle