2013-09-15 1 views
3

, пожалуйста, помогите, когда я бег моего приложения я получаю эти ошибки, им пытаются сделать андроид игрыне может быть приведен к android.app.Activity

Я пытался решить эту проблему и другие проблемы более чем 3 дни

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.zargoun.please" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

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

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.zargoun.please.Main" 
      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> 

</manifest> 

StackTrace

 D/AndroidRuntime(1115): Shutting down VM 
    W/dalvikvm(1115): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
    E/AndroidRuntime(1115): FATAL EXCEPTION: main 
    E/AndroidRuntime(1115): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.zargoun.please/com.zargoun.please.Main}: java.lang.ClassCastException: com.zargoun.please.Main cannot be cast to android.app.Activity 
    E/AndroidRuntime(1115): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
    E/AndroidRuntime(1115): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
    E/AndroidRuntime(1115): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    E/AndroidRuntime(1115): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
    E/AndroidRuntime(1115): at android.os.Handler.dispatchMessage(Handler.java:99) 
    E/AndroidRuntime(1115): at android.os.Looper.loop(Looper.java:137) 
    E/AndroidRuntime(1115): at android.app.ActivityThread.main(ActivityThread.java:5041) 
    E/AndroidRuntime(1115): at java.lang.reflect.Method.invokeNative(Native Method) 
    E/AndroidRuntime(1115): at java.lang.reflect.Method.invoke(Method.java:511) 
    E/AndroidRuntime(1115): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    E/AndroidRuntime(1115): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    E/AndroidRuntime(1115): at dalvik.system.NativeStart.main(Native Method) 
    E/AndroidRuntime(1115): Caused by: java.lang.ClassCastException: com.zargoun.please.Main cannot be cast to android.app.Activity 
    E/AndroidRuntime(1115): at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
    E/AndroidRuntime(1115): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
    E/AndroidRuntime(1115): ... 11 more 

я получаю ошибку: метод setContentView (INT) в типе деятельности не применяется для аргументов (Maing)

public class Main extends Activity { 

    private Maing _game; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     _game = new Maing(); 

     setContentView(_game); 
    } 


} 

это класс maing.java он реализует экран из libgdx библиотеки

import com.badlogic.gdx.Screen; 

public class Maing implements Screen{ 

    @Override 
    public void dispose() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void hide() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void pause() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void render(float arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void resize(int arg0, int arg1) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void resume() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void show() { 
     // TODO Auto-generated method stub 

    } 
+0

'Caused by: java.lang.ClassCastException: com.zargoun.please.Некоторые не могут быть перенесены в android.app.Activity' Пожалуйста, разместите объявление класса для' Main' – Simon

+0

Делает com.zargoun.please.Main extends Activity ? –

ответ

7

Ваш класс "Main" не распространяется активность. Это все, что я могу видеть только с вашим манифестом и StackTrace.

+0

да, но мне нужно расширить классную игру любой идеей, как ?? im not good in java – zargoun

+0

Игра в Android может быть создана двумя способами: с помощью SurfaceView (который будет практически на экране вашей игры и использует растровые изображения или чертежи для рисования) или с использованием OpenGL ES1.0 или 2.0.OpenGL более совершенен, но больше подходит для крупных проектов, и большинство людей загружают готовые модули для его использования. setContentView принимает в качестве аргумента либо представление (например, SurfaceView, о котором я говорил раньше), либо идентификатор ресурса макета (например, R.layout.your_layout). Чтобы создать игру, вам нужно прочитать о SurfaceView или загрузить игровой движок, такой как AndEngine. – LuigiPower

+0

Я использовал AndEngine, и я уже успел, но AndEngine's Box2d очень глуп или им глупо. поэтому я решил использовать libgdx который имеет хороший Box2d, что я хочу сделать, но я не смог его интерфейс с андроид Acticity – zargoun

0

Я думаю, ваш основной класс не распространяется на деятельность, но, пожалуйста, отправьте его.

Вы должны иметь:

public class Main extends Activity { }


EDIT

Вы должны узнать немного больше о Java и Android.
В основном вы создаете объект Maing (у меня нет идеи о том, что это может быть) и передайте его методу setContentView. Проблема в том, что это не имеет никакого смысла. Метод setContentView принимает только параметр int, указывающий на файл макета xml.

В Android вы должны определить свой макет в XML-файле, а затем передать его в Activity в setContentView. Если вы попытаетесь рассказать нам о библиотеке, которую используете, или о том, что вы пытаетесь сделать, мы можем быть более полезными.


EDIT2

Вот почему я спросил вас о библиотеке. Если вы используете libGDX, я не знаю, почему вы устанавливаете представление. Вам не обязательно, потому что все будет управляться в вашем основном игровом проекте, а не в Android. В своей деятельности вы должны просто расширить приложение AndroidApplication и начать игру.

public class MainActivity extends AndroidApplication { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); 
     // your configuration   
     initialize(new MyGdxGame(), cfg); 
    } 
} 

Я предлагаю вам прочитать документацию и пройти через простой учебник, как в many on the libgdx site (как this one).

+0

я попытался это, но не работает слишком общественного класса Main расширяет активность { \t \t частный Maing _game ; \t @Override \t защищен недействительными OnCreate (Пачка savedInstanceState) { \t \t // TODO Авто-сгенерированный метод окурка \t \t super.onCreate (savedInstanceState); \t \t _game = new Maing(); \t \t \t \t setContentView (_game); \t} \t } Метод setContentView (INT) в типе деятельности не применяется для аргументов (Maing) – zargoun

+0

я уже знал проблему, класс им, указывая на не расширение класса представления. у вас есть какие-либо предложения, как я могу исправить это? – zargoun

+0

Отредактировано. Думаю, вам нужно немного узнать об основах Android или рассказать о библиотеке, которую вы используете, чтобы сделать игру. :;) – Enrichman

Смежные вопросы