W
Wambui
Neues Mitglied
- 0
Hallo zusammen,
folgende Activities habe ich aus dem Androidbuch (www.androidbuch.de mit Quellcode) und will das Aufrufen der zweiten Activity nachvollziehen. Ich verwende Android-Studio 1.2.2.
Beim Anklicken des Menüpunktes "Hilfe anzeigen", der die Activity HilfeAnzeigen starten soll, kommt folgende ActivityNotFoundException:
"Unable to find explicit activity class {com.projekt.amando4/com.projekt.amando4.gui.HilfeAnzeigen}; have you declared this activity in your AndroidManifest.xml?"
StartActivity:
Zweite Activity
Manifest.xml
Logcat:
Im Prinzip ist das der gleiche Code wie in dem Lehrbuch bzw. den zur Verfügung gestellten Sourcecode. Warum bekomme ich dann diese Exception? Hat das mit Einstellungen in Android-Studio zu tun?
Grüße
Wambui
folgende Activities habe ich aus dem Androidbuch (www.androidbuch.de mit Quellcode) und will das Aufrufen der zweiten Activity nachvollziehen. Ich verwende Android-Studio 1.2.2.
Beim Anklicken des Menüpunktes "Hilfe anzeigen", der die Activity HilfeAnzeigen starten soll, kommt folgende ActivityNotFoundException:
"Unable to find explicit activity class {com.projekt.amando4/com.projekt.amando4.gui.HilfeAnzeigen}; have you declared this activity in your AndroidManifest.xml?"
StartActivity:
Code:
package com.projekt.amando4.gui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.projekt.amando4.R;
import com.projekt.amando.common.GpsData;
import com.projekt.amando.db.SpieldatenGenerator;
import com.projekt.amando.amando4.kontakt.GeoKontakt;
import com.projekt.amando.amando4.kontakt.GeoKontaktSpeicher;
import com.projekt.amando.receiver.SmsBroadcastReceiver;
import com.projekt.amando.services.GeoPositionsService;**/
public class Startseite extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startseite);
setTitle(R.string.startseite_titel);
registerForContextMenu(findViewById(R.id.sf_starte_geokontakte));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.hauptmenu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.opt_einstellungenBearbeiten:
// TODO opt_einstellungenBearbeiten
return true;
case R.id.opt_hilfe:
// TODO opt_hilfe
return true;
case R.id.opt_amandoBeenden:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if (v.getId() == R.id.sf_starte_geokontakte) {
getMenuInflater().inflate(R.menu.startseite_contextmenu, menu);
}
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getItemId() == R.id.opt_geokontakt_verwalten_hilfe) {
final Intent intent = new Intent(this, HilfeAnzeigen.class);
startActivity(intent);
return true;
}
return super.onContextItemSelected(item);
}
public void onClickPositionSenden(final View sfNormal) {
// TODO onClickPositionSenden
}
public void onClickGeokontakteVerwalten(final View sfNormal) {
// TODO
}
public void onClickKarteAnzeigen(final View sfNormal) {
// TODO
}
public void onClickSimulationStarten(final View sfNormal) {
// TODO
}
}
Zweite Activity
Code:
package com.projekt.amando4.gui;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import com.projekt.amando4.R;
import java.io.IOException;
import java.io.InputStream;
public class HilfeAnzeigen extends Activity {
/** Kuerzel fuers Logging. */
// private static final String TAG = HilfeAnzeigen.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Log.v(TAG, "onCreate(): entered...");
setContentView(R.layout.hilfe_anzeigen);
final WebView view = (WebView) findViewById(R.id.webview);
view.getSettings().setJavaScriptEnabled(true);
initialisiereWebKit(view, this);
view.bringToFront();
}
private void initialisiereWebKit(WebView view, Context context) {
final String mimetype = "text/html";
final String encoding = "UTF-8";
String htmldata;
int contextMenueId = R.raw.hilfe_komplett;
InputStream is = context.getResources().openRawResource(contextMenueId);
try {
if (is != null && is.available() > 0) {
final byte[] bytes = new byte[is.available()];
is.read(bytes);
htmldata = new String(bytes);
view.loadDataWithBaseURL(null, htmldata, mimetype, encoding, null);
}
} catch (IOException e) { }
}
}
Manifest.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.projekt.amando4" >
android:versionCode="2"
android:versionName="2.0"
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="17"/>
<uses-permission android:name=
"android.permission.READ_CONTACTS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:debuggable="true"
android:theme="@style/AmandoTheme" >
<activity
android:name="com.projekt.amando4.gui.Startseite"
android:label="@string/app_name" >
<intent-filter>
<action android:name=
"android.intent.action.MAIN" />
<category android:name=
"android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<activity android:name="com.projekt.amando4.gui.HilfeAnzeigen" />
</manifest>
Logcat:
Code:
06-23 11:38:29.699 933-933/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.projekt.amando4/com.projekt.amando4.gui.HilfeAnzeigen}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
at android.app.Activity.startActivityForResult(Activity.java:3390)
at android.app.Activity.startActivityForResult(Activity.java:3351)
at android.app.Activity.startActivity(Activity.java:3587)
at android.app.Activity.startActivity(Activity.java:3555)
at com.projekt.amando4.gui.Startseite.onContextItemSelected(Startseite.java:94)
at android.app.Activity.onMenuItemSelected(Activity.java:2586)
at com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback.onMenuItemSelected(PhoneWindow.java:3644)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:742)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:881)
at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:167)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:941)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
at android.widget.AbsListView$1.run(AbsListView.java:3463)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
06-23 11:38:29.819 290-439/? W/ActivityManager﹕ Force finishing activity com.projekt.amando4/.gui.Startseite
Grüße
Wambui