Java.Lang.runtIMEEXCeption: Kan Activiteit Componentinfo niet instantiëren

Ik probeerde een voorbeeldcode uit te voeren
Tijdens het lanceren van de applicatie in de Android 1.5-emulator, kreeg ik deze fouten ….
Iemand heeft een hint ..?

FOUT VAN LOGCAT:

01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112):   Force finishing activity com.s.android.test/.MainActivity

Bewerken
Deze fout komt voor bij de meeste beginners, het punt is dat je al je activiteiten in het manifestbestand moet toevoegen.


Antwoord 1, autoriteit 100%

Het is een probleem van je intentie.

Voeg uw Activitytoe aan uw AndroidManifest.xml.

Als je een nieuwe activiteit wilt maken, moet je deze registreren in je AndroidManifest.xml.


Antwoord 2, autoriteit 44%

Misschien probeert u de weergave vóór onCreate()te vinden, wat onjuist is.

public class MainActivity extends Activity {
  ImageView mainImage = (ImageView) findViewById(R.id.imageViewMain); //incorrect
  @Override
  protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  ...
}

Antwoord 3, autoriteit 40%

Er is een andere manier om een java.lang.RuntimeException: kan activiteit ComponentInfo-uitzondering niet instantiëren en dat is de activiteit die u probeert te starten, is abstract. Ik heb een keer deze stomme fout gemaakt en het is heel gemakkelijk om over het hoofd te zien.


Antwoord 4, autoriteit 36%

In mijn geval ben ik vergeten de Google Maps-bibliotheek toe te voegen

<application>
    ....
    <uses-library android:name="com.google.android.maps" />
</application>

Controleer ook of u de voorgaande stip voor het activiteitenpad niet mist

<activity android:name=".activities.MainActivity"/>

Antwoord 5, autoriteit 18%

Het gebeurt ook vanwege dit probleem. Ik schakelde de potten uit die naar de apk moesten worden geëxporteerd en hetzelfde gebeurde. Vink de potten aan die uw app moet uitvoeren.


Antwoord 6, autoriteit 13%

Dit is misschien niet relevant voor de eigenlijke vraag, maar in mijn geval probeerde ik Kotlin te implementeren en liet ik apply plugin: 'kotlin-android'weg. De fout deed zich voor omdat het de MainActivity niet kon herkennen als een .kt-bestand.

Ik hoop dat het iemand helpt.


Antwoord 7, autoriteit 10%

Ik ben dit probleem ook tegengekomen, maar op een iets andere manier. Dit was mijn scenario:

App-detail:

  • ActionBarSherlock gebruiken als bibliotheek
  • Android-support-v4-r7-googlemaps.jar gebruiken in de ActionBarSherlock-bibliotheek zodat ik een ‘kaartfragment’ in mijn primaire project kon gebruiken
  • De pot toegevoegd aan het bouwpad van mijn primaire project
  • De <uses-library android:name="com.google.android.maps" />opgenomen in de manifesten van zowel het bibliotheekproject als mijn primaire project (dit is mogelijk niet nodig in de bibliotheek?)
  • Het manifest in het primaire project had de juiste activiteitsdefinitie en alle juiste eigenschappen
  • Ik had geen abstracte activiteit of een van de andere problemen die ik op Stack Overflow heb gezien met betrekking tot dit probleem.

Ik ben echter nog steeds de fout tegengekomen die in het oorspronkelijke bericht wordt beschreven en kon het niet laten verdwijnen. Het probleem was echter in één opzicht iets anders:

  • Het had alleen gevolgen voor een nieuwe installatie van de applicatie op mijn apparaat. Elke keer dat de app voor de eerste keer werd geïnstalleerd, kreeg ik de fout voorafgegaan door verschillende “waarschuwingen” van: Kan de superklasse van FragmentActivity niet oplossen
  • Die waarschuwingen zijn terug te voeren op de ActionBarSherlock-bibliotheek
  • De app zou geforceerd sluiten en crashen.
  • Als ik de app meteen opnieuw opbouwde en opnieuw implementeerde, werkte het prima.
  • De enige keer dat het crashte was bij een volledig nieuwe installatie. Als ik de app zou verwijderen en opnieuw zou bouwen en implementeren vanuit Eclipse, zou deze crashen. Een tweede keer bouwen/implementeren, zou prima werken.

Hoe ik het heb opgelost:

  • In het ActionBarSherlock-bibliotheekproject heb ik de android-support-v4-r7-googlemaps.jar toegevoegd aan het buildpad
  • Deze stap alleen loste het probleem niet op

  • Nadat de pot aan het bouwpad werd toegevoegd, had ik de bestelling op het Java Build Path & GT gewijzigd; Tab bestellen en exporteren – Ik stel de JAR in op het eerste item in de lijst (het was de laatste na de / SRC- en / G-items).

  • Ik herbouwde en herbouwde en herschikte de app naar mijn apparaat – het werkte zoals verwacht op een nieuwe installatie. Gewoon om zeker te zijn, ik heb het 2-3 keer opnieuw geïnstalleerd en opnieuw geïnstalleerd – werkte nog steeds zoals verwacht.

Dit kan een totale rookie-fout zijn, maar ik heb een tijdje doorgebracht terwijl ik door posten en mijn code graaide om het uit te zoeken, dus hopelijk kan het nuttig zijn voor iemand anders. Mag niet alle situaties oplossen, maar in dit specifieke geval, die uiteindelijk de oplossing voor mijn probleem is.


Antwoord 8, Autoriteit 7%

Deze fout kan ook het ultieme teken zijn van een domme fout (zoals wanneer ik – ik bedoel, hoest, zoals wanneer een vriend van mij die eenmaal hun code toonde) waar ze proberen code uit te voeren buiten een methode zoals proberen Om dit te doen:

SQLiteDatabase db = openOrCreateDatabase("DB", MODE_PRIVATE, null); //trying to perform function where you can only set up objects, primitives, etc
@Override
public void onCreate(Bundle savedInstanceState) {
....
}

In plaats van dit:

SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
db = openOrCreateDatabase("DB", MODE_PRIVATE, null);
....
}

Antwoord 9, Autoriteit 5%

Ik ben van dit probleem afgedaan door de Binen GenMap uit Project (die automatisch terugkomt wanneer het project wordt gebouwd) en vervolgens het project van – & GT; Menu – & GT; Project – & GT; schoon.

bedankt.


Antwoord 10, Autoriteit 4%

In mijn geval heb ik de setContentView(R.layout.main);

niet ingesteld

Als je een nieuwe klasse aanmaakt, vergeet dan niet om deze in te stellen op de onCreate(Bundle savedInstanceState)-methode.

Ik heb deze stomme fout meerdere keren gemaakt.


Antwoord 11, autoriteit 4%

Maak eenvoudig uw werkproject schoon of start eclipse opnieuw. Voer vervolgens uw project uit. het zal werken.


Antwoord 12, autoriteit 4%

Voor mij was mijn pakketreeks in AndroidManifest.xmlonjuist (gekopieerd uit een zelfstudie).
Zorg ervoor dat de pakketreeks in dit bestand hetzelfde is als waar uw hoofdactiviteit is, bijvoorbeeld

package="com.example.app"

Een eenvoudige manier om dit te doen is door het bestand AndroidManifest.xml te openen op het tabblad “Manifest” en het in het tekstvak naast Pakket in te typen, of door de knop Bladeren te gebruiken.

Ook was de pakketreeks voor mijn activiteit verkeerd, bijvoorbeeld

<activity android:name="com.example.app.MainActivity" android:label="@string/app_name">

Ik kreeg (domme) weken later dezelfde fout toen ik de naam van mijn pakket hernoemde. Als je dit doet, zorg er dan voor dat je ook het bestand AndroidManifest.xmlbijwerkt.


Antwoord 13, autoriteit 3%

Ok, ik ben redelijk ervaren op de iPhone, maar nieuw op Android. Ik kreeg dit probleem toen ik het volgende had:

Button infoButton = (Button)findViewById(R.id.InfoButton);

deze regel code hierboven:

@Override
public void onCreate (Bundle savedInstanceState) {
}

Misschien heb ik slaapgebrek 😛


Antwoord 14, autoriteit 3%

Voor mij was het anders dan al het bovenstaande,

De activiteit is als abstract gedeclareerd, daarom wordt de fout gegeven.
Toen het eenmaal verwijderd was, werkte het.

Eerder

    public abstract class SampleActivity extends AppcompatActivity{
     }

Na verwijdering

    public class SampleActivity extends AppcompatActivity{
     }

Antwoord 15, autoriteit 2%

Ik kwam dit onlangs tegen bij een nieuwe herinstallatie van Eclipse. Blijkt dat mijn Compiler-complianceniveau was ingesteld op Java 1.7 en project vereist 1.6.

In Eclipse:
Project -> Eigenschappen -> Java-compiler -> JDK-naleving


Antwoord 16, autoriteit 2%

In mijn geval probeerde ik de componenten (UI) te initialiseren zelfs voordat de onCreatewerd aangeroepen voor de activiteit.

Zorg ervoor dat uw UI-componenten zijn geïnitialiseerd/gekoppeld in de onCreate-methode na setContentView

NB: dit is mijn eerste fout bij het leren van Android-programmeren.


Antwoord 17, autoriteit 2%

Hoe zijn er veel manieren om deze fout te krijgen!.

Ik zal er nog een toevoegen, aangezien geen van de andere van toepassing was of de oorzaak was.

Ik ben de ‘public‘ vergeten in de declaratie van mijn activiteitenklasse! Het was een privépakket.

Ik had zoveel Bluetooth-code geschreven dat ik er uit gewoonte een activiteitsklasse van maakte die privépakket was.

Zegt iets over de onduidelijkheid van deze foutmelding.


Antwoord 18

Ik heb dit probleem en heb het opgelost door de eigenschap “startmodus” van de activiteit in te stellen.


Antwoord 19

Een andere reden voor dit probleem kan een ontbrekende bibliotheek zijn.

Ga naar Eigenschappen -> Android en controleer of u de bibliotheken correct toevoegt


Antwoord 20

Ik had hetzelfde probleem, maar ik had mijn activiteit aangegeven in het manifestbestand, met de juiste naam.

Mijn probleem was dat ik geen bibliotheken van derden hoefde te importeren in een “libs”-map, en ik moest ernaar verwijzen in mijn project (rechts klikken, eigenschappen, Java-buildpad, bibliotheken, Jar toevoegen.. .).


Antwoord 21

Dit kan gebeuren als uw activiteitsklasse zich in een standaardpakket bevindt. Ik heb het opgelost door de activiteitsklasse naar een nieuw pakket te verplaatsen. en het wijzigen van de manifest.xml

voor

activity android:name=".MainActivity" 

na

activity android:name="new_package.MainActivity"

Antwoord 22

Dit overkomt me vrij vaak bij het gebruik van de NDK. Ik ontdekte dat het voor mij nodig is om een “Clean” in Eclipse te doen na elke keer dat ik een ndk-builddoe. Ik hoop dat het iemand helpt 🙂


Antwoord 23

Deze fout treedt ook op wanneer u ActionBarActivitygebruikt maar een niet-AppCompat-stijl toewijst.

Om dit op te lossen, stelt u de stijl van uw app in op een Theme.AppCompatzoals deze.:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
</style>

Antwoord 24

Klik met de rechtermuisknop op project > eigenschappen > Android > en probeer met een andere versie van de Android die ik eerder deed met Android 4.4, toen veranderde ik naar Android 4.3 en het werkte!


Antwoord 25

Ik had hetzelfde probleem (kan activiteit niet starten):

EERSTE reden:

Ik was aan het inloggen

Camera mCamera;
Camera.Parameters params = mCamera.getParameters();

voor

mCamera = Camera.open();

Dus de juiste manier is om eerst de camera te openen en vervolgens de parameters te openen.

TWEEDE reden: geef uw activiteit aan in het manifestbestand

<activity android:name=".activities.MainActivity"/>

DERDE reden:
Verklaar cameratoestemming in uw manifestbestand.

<uses-feature android:name="android.hardware.Camera"></uses-feature>
<uses-permission android:name="android.permission.CAMERA" />

Hopelijk helpt dit


Antwoord 26

In mijn geval probeerde ik de Facebook SDKin te sluiten en ik had de verkeerde Applicatie-ID; dus de fout kwam naar voren. In uw manifestbestand zou u de juiste metagegevens moeten hebben:

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />

Antwoord 27

Als je Android Studio 2.3.3 en Android Studio 3.0.0 hebt geïnstalleerd, zal het schakelen tussen de twee programma’s voor ontwikkeling deze fout veroorzaken. Dit komt omdat er situaties zijn waarin klassen die in het ene programma worden ondersteund, niet door het andere worden ondersteund en vice versa. Het is belangrijk om consistent te blijven in welke versie van Android Studio wordt gebruikt om een project te ontwikkelen.


Antwoord 28

Zoals gesuggereerd door djjeckin opmerking in ditantwoord dat ik heb gemist om publicmodifier voor mijn klas.

Het zou moeten zijn

public class MyActivity extends AppCompatActivity {

Het kan sommigen zoals ik helpen.


Antwoord 29

Ik heb alle bovenstaande oplossingen geprobeerd, maar niets werkt voor mij. nadat ik zojuist extendactiviteit heb toegevoegd in plaats van AppCompatActivityen het werkt prima.

gebruikt

public class MainActivity extends Activity  

in plaats van

public class MainActivity extends AppCompatActivity 

ik weet niet wat het echte probleem was.


Antwoord 30

In mijn geval vergeet ik de MainActivity-klasse als openbaarte maken.

Andere oplossingen:

  1. Activiteit toevoegen in Manifestbestand

  2. Controleer alle toegangsmodifiers

Other episodes