ClassNotFoundException nach ADT-Update

Lesezeit: 5 Minuten

Ich habe kürzlich das Android SDK & Eclipse ADT-Plugin auf die neueste Version aktualisiert. Wenn ich jetzt versuche, ein bereits vorhandenes Android-Projekt auszuführen, zeigt LogCat a ClassNotFoundException.

Ich habe versucht, ein neues Gerät zu erstellen, aber das Problem besteht weiterhin.

Manifest

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

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.myapp.MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

LogCat

05-17 13:09:56.357: E/AndroidRuntime(969): FATAL EXCEPTION: main
05-17 13:09:56.357: E/AndroidRuntime(969): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myapp/com.example.myapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MainActivity" on path: /data/app/com.example.myapp-1.apk
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.os.Looper.loop(Looper.java:137)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread.main(ActivityThread.java:5041)
05-17 13:09:56.357: E/AndroidRuntime(969):  at java.lang.reflect.Method.invokeNative(Native Method)
05-17 13:09:56.357: E/AndroidRuntime(969):  at java.lang.reflect.Method.invoke(Method.java:511)
05-17 13:09:56.357: E/AndroidRuntime(969):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-17 13:09:56.357: E/AndroidRuntime(969):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-17 13:09:56.357: E/AndroidRuntime(969):  at dalvik.system.NativeStart.main(Native Method)
05-17 13:09:56.357: E/AndroidRuntime(969): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MainActivity" on path: /data/app/com.example.myapp-1.apk
05-17 13:09:56.357: E/AndroidRuntime(969):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
05-17 13:09:56.357: E/AndroidRuntime(969):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-17 13:09:56.357: E/AndroidRuntime(969):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-17 13:09:56.357: E/AndroidRuntime(969):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
05-17 13:09:56.357: E/AndroidRuntime(969):  ... 11 more

Mir ist aufgefallen, dass die neue APK-Datei aufgerufen wird myapp-1.apkwährend es normalerweise genannt wurde myapp.apk. Kann mir jemand sagen wie ich das beheben kann?

  • Verweisen Sie auf ein Bibliotheksprojekt in Ihrem Android-Projekt?

    – Raghunandan

    17. Mai 2013 um 13:24 Uhr

  • @ Raghunandan bin ich. Gibt es ein Problem?

    – Schwarzer Gürtel

    17. Mai 2013 um 13:25 Uhr

  • Nein, ich habe nur Gläser drin libs Mappe.

    – Benutzer2340612

    17. Mai 2013 um 13:25 Uhr

  • mögliches Duplikat von ClassNotFoundException auf von AndroidAnnotations generierten Klassen seit dem Update auf ADT 22

    – Kuffs

    17. Mai 2013 um 13:26 Uhr

ClassNotFoundException nach ADT Update
Krauxe

Versuchen Sie, zu gehen Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bestellung & Export und sicherstellen Private Android-Bibliotheken werden überprüft für Ihr Projekt und für alle anderen Bibliotheksprojekte du benutzt. Bereinigen Sie anschließend alle Projekte und sehen Sie, was passiert.

  • Was ist mit privaten Android-Bibliotheken? Wurde es mit dem letzten ADT eingeführt?

    – Schwarzer Gürtel

    17. Mai 2013 um 13:28 Uhr

  • Ich schließe mich der Frage von @blackbelt an. Und informiert uns Google wirklich nirgendwo über neue Funktionen und Breaking Changes von ADT-Releases? ADT 22 war nicht der totale Albtraum, der ADT 20 war, aber warum erzählen Sie uns nicht wenigstens etwas über Breaking Changes? Die ADT-Plug-in-Seite dort hätte ich es erwartet.

    – Tom

    21. Mai 2013 um 20:33 Uhr


  • Es ist großartig, dass die besten Ingenieure der Welt (Google) Updates einführen, die Dinge kaputt machen. Tut mir leid, ich kann nicht anders, als mich bissig zu fühlen. Wäre ohne Stack verloren.

    – Fragle

    5. Juni 2013 um 16:08 Uhr


  • Vergeudete Stunden damit. Sie sind Lebensretter.

    – Abhi

    7. Juni 2013 um 20:08 Uhr

  • >_< Zum zweiten Mal bin ich von diesem Ding f*****.

    – Warpzit

    14. Juni 2013 um 9:34 Uhr

1646184187 24 ClassNotFoundException nach ADT Update
Vysakh Prem

Ich weiß, dass ich sehr spät bin, um hier eine Antwort zu posten. Der von Krauxe erwähnte Workaround hat mir nicht geholfen. Mein Projekt hat zwei Bibliotheksprojekte und zwei Gläser. Ich habe eine Lösung gefunden, die von “laaptu” auf der Seite veröffentlicht wurde. Bibliotheken werden nach dem Upgrade auf ADT 22 nicht mehr zu APK hinzugefügt.

Ich habe das Eclipse ADT-Bundle und zusätzlich zur Antwort von @Krauxe hat das Aktualisieren der Eclipse-Projektdatei wie folgt für mich funktioniert:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>RedbeaconPro</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.android.ide.eclipse.adt.ApkBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

1641738061 913 Git Clone von GitHub uber https mit Zwei Faktor Authentifizierung
Richard

Wenn Sie in Ihrem Projekt auch das Maven-Plugin verwenden, kann “Maven -> Maven Update …” dasselbe Problem wie ClassNotFoundException verursachen. Wie Sie wissen, sollte der Standardausgabeordner für Klassen /bin/classes sein, der in der .classpath-Datei und im Eclipse-Erstellungspfad angegeben ist. Aber sobald Sie “Maven->Maven Update …” ausführen, wird der Ausgabeordner als “target/classes” festgelegt. Sie finden es (output=”target/classes”) in Ihrer .classpath-Datei.

.classpath-Datei:

...    
<classpath>
            <classpathentry kind="src" path="gen"/>
            <classpathentry kind="src" output="target/classes" path="src/main/java">
...

So lösen Sie dieses Problem, Bitte geben Sie den Ausgabeordner der Klassen explizit als “bin/classes” in der Datei pom.xml an.

pom.xml-Datei:

...
<build>
            <sourceDirectory>src/main/java</sourceDirectory>
            <outputDirectory>bin/classes</outputDirectory>
...

906880cookie-checkClassNotFoundException nach ADT-Update

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy