[英]Error running 'app': Default Activity not found in Android Studio
[英]Incorrect Activity when running App Android Studio
我已經開始在Android Studio中構建應用。 我已經在manifest.xml
中將MainPage
建立為啟動器活動。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainPage">
android:screenOrientation="portrait"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".courseSelect" />
<activity android:name=".profile1" />
<activity android:name=".stats1" />
<activity android:name=".ReviewRounds" />
<activity android:name=".ReferFriends" />
<activity android:name=".RangeMode" />
</application>
我已經仔細檢查了運行配置是否設置為“默認”,但該應用程序正在運行另一個名為courseSelect
活動。 它也沒有在NumberPicker
上正確運行某些代碼。 即使我已將選擇器設置為具有最小值,最大值和默認值,但選擇器僅顯示0,並且不會滾動。 就正在運行的活動而言,這兩個問題似乎有某種聯系。
這是courseSelect
代碼:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.NumberPicker;
import co.ceryle.segmentedbutton.SegmentedButtonGroup;
public class courseSelect extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_course_select);
//Hole Picker
NumberPicker holePicker = (NumberPicker)findViewById(R.id.holePicker);
holePicker.setMaxValue(18);
holePicker.setMinValue(1);
holePicker.setWrapSelectorWheel(false);
holePicker.setValue(1);
SegmentedButtonGroup sbg = (SegmentedButtonGroup) findViewById(R.id.segmentedButtonGroup);
sbg.setOnClickedButtonPosition(new SegmentedButtonGroup.OnClickedButtonPosition() {
@Override
public void onClickedButtonPosition(int position) {
// if(position == 0)
}
});
}
}
我試圖將運行配置專門設置為MainPage
活動,但它仍在courseSelect
頁面中打開。
編輯:根據要求,這是我的MainPage.java
代碼:
public class MainPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_course_select);
Window g = getWindow();
g.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.TYPE_STATUS_BAR);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
...
}
編輯Mainfest.xml
,以便在那里已經強制執行縱向布局:
<activity android:name=".MainPage"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...這使得此代碼僅無用( styles.xml
也可用於窗口樣式):
Window g = getWindow();
g.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.TYPE_STATUS_BAR);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
還更新setContentView( R.layout.activity_course_select );
到適當的資源。
因為它啟動MainPage
Activity,但隨后又膨脹了錯誤的XML文件。
之前的一個“建議編輯”是交換setContentView()
和下面的段落的順序...我拒絕了,因為在Manifest.xml
設置似乎更有條理(代碼更少)。
首先,清單文件中有一個錯誤
您在開始標記之外編寫了screenOrientation屬性
<activity android:name=".MainPage">
android:screenOrientation="portrait"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
它應該是
<activity
android:name=".MainPage"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
並且您使用了錯誤的xml來setContenView
嘗試此操作,錯誤在第9行,因為您的代碼行在標記之外:
<activity android:name=".MainPage">
android:screenOrientation="portrait" // error
做這個 :
<activity android:name=".MainPage"
android:screenOrientation="portrait"> // After doing this no error
並做這個事情:
public class MainPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_course_select); // error
做這個 :
public class MainPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.MAIN_PAGE_ACTIVITY_NAME); // no error
您的啟動器活動是MainPage,但您正在此行上在MainPage活動的onCreate方法中調用Courseselect活動的布局
setContentView(R.layout.activity_course_select);
將其更改為您的MainPage布局
setContentView(R.layout.yourMainPageLayout);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.