【问题标题】:starting the android app at start of phone在手机启动时启动 android 应用程序
【发布时间】:2013-03-10 02:29:56
【问题描述】:

我希望在手机启动时显示我的 android 活动,但应用程序崩溃了,我也无法获取日志。这是代码 清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
         <receiver android:enabled="true" android:name=".BootUpReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

        <activity
        android:label="@string/app_name"
        android:name=".StartupActivity" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
           </activity>
    </application>

</manifest>

BOOTUPRECEIVER.JAVA

package com.example.sample;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootUpReceiver extends BroadcastReceiver{


     @Override
     public void onReceive(Context context, Intent intent) {

         Intent i = new Intent(context, StartupActivity.class); 
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(i); 

     }
    }

STARTUPACTIVITY.JAVA

package com.example.sample;

import android.app.Activity;
import android.os.Bundle;

import com.android.R;

public class StartupActivity extends Activity {



     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);


     }
    }

有人可以帮我解决这个问题

编辑: 03-20 16:05:24.519: E/AndroidRuntime(2709): java.lang.RuntimeException: 无法实例化活动 ComponentInfo{com.android/com.android.StartupActivity}: java.lang.ClassNotFoundException: com.android.StartupActivity在加载器 dalvik.system.PathClassLoader[/data/app/com.android-1.apk] 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.os.Handler.dispatchMessage(Handler.java:99) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.os.Looper.loop(Looper.java:130) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread.main(ActivityThread.java:3687) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 java.lang.reflect.Method.invokeNative(Native Method) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 java.lang.reflect.Method.invoke(Method.java:507) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 dalvik.system.NativeStart.main(Native Method) 03-20 16:05:24.519: E/AndroidRuntime(2709): 由: java.lang.ClassNotFoundException: com.android.StartupActivity in loader dalvik.system.PathClassLoader[/data/app/com.android-1.apk ] 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:551) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:511) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1021) 03-20 16:05:24.519: E/AndroidRuntime(2709): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565) 03-20 16:05:24.519: E/AndroidRuntime(2709): ... 11 更多

【问题讨论】:

  • 我可以在管理要卸载的应用程序中看到我的应用程序,但在正常的应用程序网格 dsiplay 中看不到
  • 如果自己运行 StartupActivity 会崩溃吗?
  • 我在启动活动中没有任何逻辑......它只是显示你好世界。所以我猜startupactivity.java没有问题

标签: android


【解决方案1】:

在 Android 3.0 及更高版本中,启动接收器在至少手动启动一次 Activity 后才会运行。所以很可能你从来没有跑步过。

您没有出现在网格中,因为您没有启动器活动。将此添加到清单中的活动标记

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

然后运行应用程序一次。之后它应该可以工作了。

【讨论】:

  • 我已经进行了更改,但现在出现了新错误,已更新查询
  • 您的应用程序包名称是 com.android。这意味着您的活动需要在 com.android 中才能使用 .ClassName 命名它的方法,而不是完全限定的包和类名。我建议将您的包更改为独特的东西,尝试将您的东西放在 com.android 中会导致问题。
  • 我这样改了但是没用 manifest xmlns:android="schemas.android.com/apk/res/android" package="com.example.sample" android:versionCode="1" android:versionName="1.0" >
  • 改变了你的 logcat。再次更新。
猜你喜欢
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多