Android 在选项卡内启动活动失败

Android 在选项卡内启动活动失败,android,android-studio,android-tabactivity,Android,Android Studio,Android Tabactivity,在我的应用程序中,我想在我的选项卡中启动活动。所以不同的选项卡应该包含来自不同项目的不同活动。每个活动都是一个单独构建和测试的导入模块项目。问题是当我构建我的应用程序时,它崩溃了 主要活动 package sst1.emily.example.com.sst1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import andr

在我的应用程序中,我想在我的选项卡中启动活动。所以不同的选项卡应该包含来自不同项目的不同活动。每个活动都是一个单独构建和测试的导入模块项目。问题是当我构建我的应用程序时,它崩溃了

主要活动

package sst1.emily.example.com.sst1;

import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TabHost;

public class MainActivity extends AppCompatActivity {

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

        TabHost host = (TabHost)findViewById(R.id.tabHost);
        host.setup();

 //Tab 1
        TabHost.TabSpec spec = host.newTabSpec("Tab One");
        spec.setIndicator("Tab One");
        host.addTab(spec);
        Intent intent = new Intent();
        intent.setClassName("attendance.emily.example.com.attendance", "MainActivity");
        spec.setContent(intent);

        //Tab 2
        spec = host.newTabSpec("Tab Two");
        spec.setContent(R.id.tab2);
        spec.setIndicator("Tab Two");
        host.addTab(spec);

        //Tab 3
        spec = host.newTabSpec("Tab Three");
        spec.setContent(R.id.tab3);
        spec.setIndicator("Tab Three");
        host.addTab(spec);
    } }

日志:


知道我做错了什么吗

选项卡中的活动已被弃用了六年。他们从不支持来自其他应用程序的活动。

oh。。。。。。。。那我该怎么办?事实上,我已经建立了几个项目,并分别进行了测试,他们工作得很好。现在的问题是,我必须将各种预构建项目组合到一个应用程序中。有没有关于如何实现这一点的建议?@EmilyyLim:在源代码级别将它们合并到一个应用程序中。虽然一个应用程序可以启动另一个应用程序的活动,但除了有限的场景(例如,应用程序小部件和其他
remoteview
uses),您不能将另一个应用程序的UI嵌入到自己的应用程序中。
02/05 01:32:48: Launching app
No apk changes detected since last installation, skipping installation of C:\Users\Emily\AndroidStudioProjects\SST1\app\build\outputs\apk\app-debug.apk
$ adb shell am force-stop sst1.emily.example.com.sst1
$ adb shell am start -n "sst1.emily.example.com.sst1/sst1.emily.example.com.sst1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Connecting to sst1.emily.example.com.sst1
I/System.out: Sending WAIT chunk
W/ActivityThread: Application sst1.emily.example.com.sst1 is waiting for the debugger on port 8100...
I/System.out: Debugger has connected
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
Connected to the target VM, address: 'localhost:8600', transport: 'socket'
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: debugger has settled (1493)
I/InstantRun: Instant Run Runtime started. Android package is sst1.emily.example.com.sst1, real application class is null.
W/InstantRun: No instant run dex files added to classpath
W/dalvikvm: VFY: unable to resolve interface method 15998: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
W/dalvikvm: VFY: unable to resolve interface method 16000: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
W/dalvikvm: VFY: unable to resolve interface method 16004: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
W/dalvikvm: VFY: unable to resolve virtual method 686: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
W/dalvikvm: VFY: unable to resolve virtual method 708: Landroid/content/res/TypedArray;.getType (I)I
W/dalvikvm: VFY: unable to resolve virtual method 16431: Landroid/widget/FrameLayout;.startActionModeForChild (Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
W/dalvikvm: VFY: unable to resolve virtual method 419: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
W/dalvikvm: VFY: unable to resolve virtual method 649: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
W/dalvikvm: VFY: unable to resolve virtual method 651: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
W/dalvikvm: VFY: unable to resolve instanceof 148 (Landroid/graphics/drawable/RippleDrawable;) in Landroid/support/v7/widget/AppCompatImageHelper;
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x416abe18)
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: sst1.emily.example.com.sst1, PID: 15643
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{sst1.emily.example.com.sst1/sst1.emily.example.com.sst1.MainActivity}: java.lang.IllegalArgumentException: you must specify a way to create the tab content
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2653)
                      at android.app.ActivityThread.access$800(ActivityThread.java:156)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:157)
                      at android.app.ActivityThread.main(ActivityThread.java:5872)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: java.lang.IllegalArgumentException: you must specify a way to create the tab content
                      at android.widget.TabHost.addTab(TabHost.java:225)
                      at sst1.emily.example.com.sst1.MainActivity.onCreate(MainActivity.java:22)
                      at android.app.Activity.performCreate(Activity.java:5312)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2552)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2653) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:157) 
                      at android.app.ActivityThread.main(ActivityThread.java:5872) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674) 
                      at dalvik.system.NativeStart.main(Native Method)