android api 23 startActivity错误

时间:2016-12-26 15:40:35

标签: android broadcastreceiver start-activity

以下示例的构建错误:

public class BootReceiver extends BroadcastReceiver {

public BootReceiver() {
}

@Override
public void onReceive(final Context mContext, Intent intent) {
    if(intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)){
        final Intent l = new Intent();
        l.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        l.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        l.setComponent(new ComponentName(this.getClass().getName(), MainActivity.class.getName()));
        mContext.getApplicationContext().startActivity(l);
    }
}
}

广播接收器在AndroidManifest.xml里面的标签中声明如下:

    <receiver
        android:name=".BootReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter >
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

build.gradle看起来像:

申请插件:&#39; com.android.application&#39;

android {
compileSdkVersion 23
buildToolsVersion '25.0.2'
defaultConfig {
    minSdkVersion 23
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }
    debug {

    }
}
productFlavors {
}
}

dependencies {
    compile 'com.android.support:leanback-v17:23.2.1'
    compile 'com.android.support:preference-leanback-v17:23.2.1'
}

但是在清洁项目之后,任何创建尝试都会跟着:

Error:(38, 37) error: cannot find symbol method startActivity(Intent)

使用Android Studio最新稳定版。 试图重启工作站和Studio(包括缓存失效),重新安装平台,切换到beta Studio版本,但结果相同。

对于此问题的任何建议,

将不胜感激。从来没有见过这样的东西。

1 个答案:

答案 0 :(得分:0)

保持冷静,查看所有项目代码。我在本地项目的文件树中找到了android.content.Context类的副本。并且没有startActivity方法。

添加了

副本以访问不带java反射的隐藏/仅系统类字段/方法。我很抱歉。