我正在創建我的第一個應用程序,但是當我在設備中安裝apk文件時,它會在我嘗試打開它時崩潰。我找不到問題,所以我會發布代碼的開頭。該應用程序與SplashActivity應用程序不在物理設備上運行
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Intent intent = new Intent(this, Home.class);
startActivity(intent);
}
}
開始,然後在主頁的活動應該開始
public class Home extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
getIntent();
String[] names= new String[]{"Albums","By Era", "Members", "Eddie", "Fan Arts", "Ed Force One"};
int []imageId = new int[]{R.drawable.albums, R.drawable.era, R.drawable.members, R.drawable.eddie, R.drawable.fanarts, R.drawable.edforceone };
CustomGrid adapter = new CustomGrid(Home.this, names, imageId);
final GridView grid_main = (GridView) findViewById(R.id.grid_main);
grid_main.setAdapter(adapter);
grid_main.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// selection
String maincat="";
switch (grid_main.getCheckedItemPosition()){
case R.id.albums:
maincat="Albums";
break;
case R.id.era:
maincat="By Era";
break;
case R.id.member:
maincat="Members";
break;
case R.id.eddie:
maincat="Eddie";
break;
case R.id.arts:
maincat="Fan arts";
break;
case R.id.ed:
maincat="Ed Force One";
break;
}
//start different activities
if (maincat.equals("Eddie") || maincat.equals("Ed Force One") || maincat.equals("Fan arts")){
Intent intent= new Intent(Home.this, Pictures.class);
intent.putExtra("maincat", maincat);
startActivity(intent);}
else {
Intent intent= new Intent(Home.this, SubActivity.class);
intent.putExtra("maincat", maincat);
startActivity(intent);}
}
});
}
@Override
// overflow menu
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.about:
Intent intent= new Intent(Home.this, About.class);
startActivity(intent);
return true;
case R.id.contacts:
Intent intent2= new Intent(Home.this, Contacts.class);
startActivity(intent2);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
這裏是清單的有關活動
<activity android:name=".Home">
</activity>
<activity
android:name=".SubActivity"
android:parentActivityName=".Home" />
<activity
android:name=".About"
android:parentActivityName=".Home" />
<activity
android:name=".Contacts"
android:parentActivityName=".Home" />
<activity
android:name=".Pictures"
android:parentActivityName=".Home">
</activity>
<activity
android:name=".ViewPic"
android:parentActivityName=".Home">
</activity>
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
的應用程序有一個巨大的資產文件夾中的一部分但即使刪除它,應用程序也不會運行。我驗證了minimun sdk版本(19)與我的Android設備版本(4.4)相同。必須說,我不能使用Android Studio模擬器,因爲我的硬件已過時:/
發佈您的logcat –
要使手機在Android Studio上顯示,請轉到設置 - 關於手機,然後在內部版本號上點擊很多次。回到設置,你會看到一個新的開發者選項菜單項。輸入那裏並啓用USB調試 –
感謝@LeonardoAcevedo –