2016-12-26 21 views
0

имеют встроенную ошибку для образца ниже:андроид апи 23 startActivity ошибка

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 это выглядит следующим образом:

применить плагин: '' com.android.application

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 (включая недействительность кэша), переустановить платформу, перейти на версию бета-версии, но иметь такой же результат.

будет благодарен за любые предложения по этой проблеме. никогда раньше не видел чего-то подобного.

+0

Почему вы используете 'mContext.getApplicationContext(). StartActivity (l);'? insted вашего 'mContext.startActivity (l);' –

+0

, потому что я был опробован 'mContext.startActivity (l);' сначала с той же ошибкой, что и результат. поэтому я начинаю верить в волшебство и пытаюсь использовать некоторую «магическую пыль» для решения моей проблемы. к сожалению, не повезло. – bershadskiy

ответ

0

Будьте спокойны и посмотрите весь код проекта. Я нахожу дубликат класса android.content.Context в дереве файлов локального проекта. И не было метода startActivity.

duplicate был добавлен для доступа к скрытым/системным полям/методам класса без отражения java. Мне очень жаль.