java.lang.Classcastexception-Fehler: android.app.ContextImpl
Ich versuche mich zu integrieren ScoreNinja in mein kleines Spiel: http://scoreninja.appspot.com/
Jedoch eine runtime-exception geworfen wird jedes mal:
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): FATAL EXCEPTION: main
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shaq.pushcounter/com.shaq.pushcounter.ChickenPushupTimer}: java.lang.ClassCastException: android.app.ContextImpl
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.os.Handler.dispatchMessage(Handler.java:99)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.os.Looper.loop(Looper.java:123)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at java.lang.reflect.Method.invokeNative(Native Method)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at java.lang.reflect.Method.invoke(Method.java:507)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at dalvik.system.NativeStart.main(Native Method)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): Caused by: java.lang.ClassCastException: android.app.ContextImpl
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at com.scoreninja.adapter.ScoreNinjaAdapter.<init>(ScoreNinjaAdapter.java:85)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at com.shaq.pushcounter.ChickenPushupTimer.onCreate(ChickenPushupTimer.java:31)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
05-24 23:22:59.888: ERROR/AndroidRuntime(21237): ... 11 more
Das problem ist wahrscheinlich ChickenPushupTimer.java:31.
Hier ist meine gesamte Java-Datei:
public class ChickenPushupTimer extends Activity
{
int count = 0;
TextView timeLeft;
TextView totalPushups;
ImageButton button;
SoundManager mSoundManager;
Vibrator myVib;
ScoreNinjaAdapter scoreNinjaAdapter;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.chickentimer);
scoreNinjaAdapter = new ScoreNinjaAdapter(getBaseContext(), "cockpushups", "71A7AD115870BA0E05C13BE2B9D3F984");
myVib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
mSoundManager = new SoundManager();
mSoundManager.initSounds(getBaseContext());
mSoundManager.addSound(1, R.raw.chicken);
timeLeft = (TextView) findViewById(R.id.timeLeft);
totalPushups = (TextView) findViewById(R.id.totalPushups);
button = (ImageButton) findViewById(R.id.chickenbutton);
countdownTimer();
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
myVib.vibrate(250);
count++;
totalPushups.setText("" + count);
mSoundManager.playSound(1);
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.popupmenu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
//Handle item selection
switch (item.getItemId()) {
case R.id.goback:
/*Intent myIntent = new Intent(getBaseContext(), MainMenu.class);
startActivity(myIntent);*/
finish();
return true;
// case R.id.help:
// showHelp();
// return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void countdownTimer()
{
new CountDownTimer(16000, 1000) {
public void onTick(long millisUntilFinished) {
timeLeft.setText("" + millisUntilFinished / 1000);
}
public void onFinish() {
scoreNinjaAdapter.show(count);
finish();
}
}.start();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
scoreNinjaAdapter.onActivityResult(requestCode, resultCode, data);
}
}
Dies ist Zeile 31:
scoreNinjaAdapter = new ScoreNinjaAdapter(getBaseContext(), "cockpushups", "71A7AD115870BA0E05C13BE2B9D3F984");
Möglicherweise gibt es etwas falsch mit dem Kontext, ich bin mit. Jede Hilfe wäre SEHR dankbar!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man sich den code für ScoreNinjaAdapter hier, es zeigt, dass es wirft den Kontext zu
Activity
. Versuchen Sie es mitthis
stattgetBaseContext
, da hast du den Aufruf aus einer Tätigkeit.