2016-12-26 83 views
0

有樣建立自己的錯誤如下:的Android API 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是看起來像:

apply plugin:'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' 
} 

但任何化妝嘗試之後清潔工程後:使用Android Studio的最新的穩定版本

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

。 曾嘗試重新啓動工作站和Studio(包括緩存失效),重新安裝平臺,切換到beta Studio版本,但具有相同的結果。

將不勝感激對這個問題的任何建議。以前從未見過這樣的事情。

+0

爲什麼使用'mContext.getApplicationContext()。startActivity(l);'?你的'mContext.startActivity(l);' –

+0

insted,因爲我曾嘗試過'mContext.startActivity(l);'第一個結果是相同的錯誤。所以我開始相信魔法並嘗試使用一些「魔法灰塵」來解決我的問題。可悲的是沒有運氣。 – bershadskiy

回答

0

冷靜,看看所有的項目代碼。我在本地項目的文件樹中找到android.content.Context類的副本。並沒有startActivity方法。

重複被添加到訪問隱藏/系統只有類字段/方法沒有Java反射。我非常非常抱歉。