【问题标题】:Launching Android Activity from adb shell从 adb shell 启动 Android Activity
【发布时间】:2013-06-06 23:53:30
【问题描述】:

我的手机上安装了一个 android 应用程序,我想通过 adb shell 启动其中一项活动。这是文件的清单:

编辑 我还在所有清单代码和 adb 命令下方发布了 logcat 信息。它正在抛出 NullPointerException。

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="2010100" android:versionName="2.1.1" package="com.aurorasoftworks.quadrant.ui.standard"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />
    <application android:label="@string/app_name" android:icon="@drawable/icon" android:name="com.aurorasoftworks.quadrant.ui.standard.QuadrantStandardApplication">
        <activity android:label="@string/app_name" android:name=".QuadrantStandardLauncherActivity" android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:label="@string/app_name" android:name=".QuadrantStandardActivity" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.runner.BenchmarkExecutionActivity" android:screenOrientation="portrait" android:noHistory="true" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.score.BenchmarkScoreActivity" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.browser.DeviceVendorListActivity" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.browser.DeviceListActivity" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.browser.DeviceStatsActivity" />
        <activity android:label="@string/app_name" android:name="com.aurorasoftworks.quadrant.ui.sysinfo.SystemInfoActivity" />
        <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SET_ORIENTATION" />
</manifest>

我尝试使用以下命令启动 QuadrantStandardActivity:

adb shell am start -n com.aurorasoftworks.quadrant.ui.standard/.QuadrantStandardActivity

它奏效了。但是当我尝试连接到另一个活动时它失败了。我使用的命令是:

adb shell am start -n com.aurorasoftworks.quadrant.ui.standard/com.aurorasoftworks.quadrant.ui.runner.BenchmarkExecutionActivity

Logcat 信息:

E/AndroidRuntime(11973): FATAL EXCEPTION: main

E/AndroidRuntime(11973): java.lang.NullPointerException

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.core.C.a(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.ui.runner.A.a(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.ui.runner.BenchmarkExecutionActivity.h(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.ui.runner.r.apply$mcV$sp(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.ui.runner.r.a(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.ui.runner.r.apply(Unknown Source)

E/AndroidRuntime(11973):    at com.aurorasoftworks.quadrant.util.r.run(Unknown Source)

E/AndroidRuntime(11973):    at android.os.Handler.handleCallback(Handler.java:725)

E/AndroidRuntime(11973):    at android.os.Handler.dispatchMessage(Handler.java:92)

E/AndroidRuntime(11973):    at android.os.Looper.loop(Looper.java:137)

E/AndroidRuntime(11973):    at android.app.ActivityThread.main(ActivityThread.java:5074)

E/AndroidRuntime(11973):    at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime(11973):    at java.lang.reflect.Method.invoke(Method.java:511)

E/AndroidRuntime(11973):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

E/AndroidRuntime(11973):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

E/AndroidRuntime(11973):    at dalvik.system.NativeStart.main(Native Method)

W/ActivityManager(  739):   Force finishing activity com.aurorasoftworks.quadrant.ui.standard/com.aurorasoftworks.quadrant.ui.runner.BenchmarkExecutionActivity

W/ActivityManager(  739):   Force finishing activity com.aurorasoftworks.quadrant.ui.standard/.QuadrantStandardActivity

W/ActivityManager(  739): Activity pause timeout for ActivityRecord{413150d0 u0 com.aurorasoftworks.quadrant.ui.standard/com.aurorasoftworks.quadrant.ui.runner.BenchmarkExecutionActivity}

I/ActivityManager(  739): Process com.aurorasoftworks.quadrant.ui.standard (pid 11973) has died.

如果有任何帮助,我将不胜感激

【问题讨论】:

    标签: android android-activity adb


    【解决方案1】:

    BenchmarkExecutionActivity 启动时抛出 NullPointerException,查看代码为什么会抛出异常。

    【讨论】:

      【解决方案2】:

      .BenchmarkExecutionActivity

      应该在

      com.aurorasoftworks.quadrant.ui.standard

      包。要么在清单的第一行更改您的包名称,从

      package="com.aurorasoftworks.quadrant.ui.standard"
      

      package="com.aurorasoftworks.quadrant.ui"
      

      或者把那个activity放在里面

      com.aurorasoftworks.quadrant.ui.standard

      包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-16
        • 2022-01-20
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        相关资源
        最近更新 更多