2017-01-24 14 views
-1

活動を開始することができませんメインI持ってmainactivityに次のコード:エラー:致命的な例外:ComponentInfo

Intent profile = new Intent(mContext, ProfileActivity.class); 
mContext.startActivity(profile); 

それは私に次の例外を与える:

public class MainActivity extends Activity implements OnClickListener { 

    private boolean mIsFailed = false; 
    private Preview mPreview; 
    private ProcessImageAndDrawResults mDraw; 
    ........... 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 

      // Camera layer and drawing layer 
      mDraw = new ProcessImageAndDrawResults(this); 
      mPreview = new Preview(this, mDraw); 
      mDraw.mTracker = new HTracker(); 
..... 
      this.getWindow().setBackgroundDrawable(new ColorDrawable()); //black background 

      setContentView(mPreview); //creates MainActivity contents 
      addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

      // Menu 
      LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View buttons = inflater.inflate(R.layout.bottom_menu, null); 
      buttons.findViewById(R.id.ManualButton).setOnClickListener(this); 
      addContentView(buttons, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

     } 
    } 

    @Override 
    public void onClick(View view) { 
     if (view.getId() == R.id.ManualButton){ 
.................. 
     } 
    } 

    @Override 
    public void onPause() { 
...... } 

    @Override 
    public void onResume() { 
     ........} 
...... 
} 

class FaceRectangle { 
    public int x1, y1, x2, y2; 
} 

// Draw graphics on top of the video 
class ProcessImageAndDrawResults extends View { 
    public HTracker mTracker; 

    final int MAX_FACES = 5; 
    final FaceRectangle[] mFacePositions = new FaceRectangle[MAX_FACES]; 
    final long[] mIDs = new long[MAX_FACES]; 
    final Lock faceLock = new ReentrantLock(); 
    int mTouchedIndex; 
    long mTouchedID; 

    int GetFaceFrame(FSDK.FSDK_Features Features, FaceRectangle fr) 
    { 
....... 
     return 0; 
    } 

    public ProcessImageAndDrawResults(Context context) { 
     super(context); 
......... 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     ........... 
     super.onDraw(canvas); 
    } // end onDraw method 


    @Override 
    public boolean onTouchEvent(MotionEvent event) { 

     switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       for (int i=0; i<MAX_FACES; ++i) { 
        if (rects[i] != null && rects[i].x1 <= x && x <= rects[i].x2 && rects[i].y1 <= y && y <= rects[i].y2 + 30) { 
       .................... 
         break; 
        } 
       } 
       Intent profile = new Intent(mContext, ProfileActivity.class); 
       mContext.startActivity(profile); 

     } 
     return true; 
    } 

    static public void decodeYUV420SP(byte[] rgb, byte[] yuv420sp, int width, int height) { 
    ..................... 
    } 
} // end of ProcessImageAndDrawResults class 


// Show video from camera and pass frames to ProcessImageAndDraw class 
class Preview extends SurfaceView implements SurfaceHolder.Callback { 
    Context mContext; 
    Camera mCamera; 

    Preview(Context context, ProcessImageAndDrawResults draw) { 
     super(context); 
     mContext = context; 
     ............... 
    } 

    //SurfaceView callback 
    public void surfaceCreated(SurfaceHolder holder) { 
     ................... 
    } 

    //SurfaceView callback 
    public void surfaceDestroyed(SurfaceHolder holder) { 
     ............... 
    } 
.................. 
} // end of Preview class 

私はこの追加

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.luxand.facerecognition, PID: 3359 
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.luxand.facerecognition/com.luxand.facerecognition.ProfileActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3254) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 
         at android.app.ActivityThread.access$1100(ActivityThread.java:222) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) 
         at android.os.Handler.dispatchMessage(Handler.java:102) 
         at android.os.Looper.loop(Looper.java:158) 
         at android.app.ActivityThread.main(ActivityThread.java:7229) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
        Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
         at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:311) 
         at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:280) 
         at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:254) 
         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109) 
         at com.luxand.facerecognition.ProfileActivity.onCreate(ProfileActivity.java:11) 
         at android.app.Activity.performCreate(Activity.java:6876) 
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350)  
         at android.app.ActivityThread.access$1100(ActivityThread.java:222)  
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)  
         at android.os.Handler.dispatchMessage(Handler.java:102)  
         at android.os.Looper.loop(Looper.java:158)  
         at android.app.ActivityThread.main(ActivityThread.java:7229)  
         at java.lang.reflect.Method.invoke(Native Method) 

申し訳ありません。以下を追加してください。 ProfileActivityコードは空のアクティビティです。彼は、コード

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class ProfileActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_profile); 
    } 
} 

ですそして、私のマニフェストには、次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.luxand.facerecognition"> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-feature 
     android:name="android.hardware.camera.autofocus" 
     android:required="false" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> --> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen"> 
     <activity 
      android:name=".MainActivity" 
      android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".ProfileActivity"></activity> 
    </application> 
</manifest> 

誰も私を助けることができる、してください?

+4

これは、「原因:java.lang.IllegalStateException:このアクティビティでTheme.AppCompatテーマ(または子孫)を使用する必要があります」を検索する際のエラーです。スタックトレースを読み込むには、「原因」を探します。 。常に –

+1

また、ProfileActivityに問題があります。 – Selvin

+0

ProfileActivityコードとマニフェストコードを追加しました – gdayler

答えて

0

あなたが次に

Intent profile = new Intent(mContext, ProfileActivity.class); 
mContext.startActivity(profile); 

を追加するときにエラーが存在する場合は、ProfileActivityはおそらく、エラーメッセージに示されたテーマを使用しAppCompatActivityとあなたのAndroidManifest.xmlニーズを延長しています。

You need to use a Theme.AppCompat theme (or descendant) with this activity.

これを変更するには、styles.xmlファイルを確認する必要があります。

それ以外の場合は、AppCompatを使用することはできません。表示されているコードで既に行ったように、通常のActivityクラスを拡張してください。

+0

profileactivityコードとmanifest.xmlを追加しました – gdayler

+0

したがって、あなたは 'AppCompatActivity'をインポートできます、なぜあなたはそのクラスを拡張していません? –

関連する問題