所以我对Android工作室非常陌生。我通常只是观看教程,然后继续学习一切,看看一切是如何运作的。我正在尝试使用collapsilbe工具栏跟踪卡片视图/回收站视图的教程,并在完成代码后(几乎与视频中显示的人一样),应用程序仍然无法运行。我唯一改变的是图标,几个drawable和一些值(我在代码中编辑了它)。
以下是我所遵循的源代码的帖子:https://github.com/delaroy/AndroidCardView?files=1
正如我所说,没有任何错误或任何错误。但是当我运行应用程序时,它会立即崩溃。
这也是我的第一篇文章,所以如果需要任何其他信息,请告诉我。
正如我所说,我只改变了图片和一些变量等名称。此外,所有改变的东西都是固定在价值等等。
我在手机上运行了其他应用,没有任何问题。
不确定这是手机问题还是什么问题。
我正在使用运行Android 5.0的Note 3。
答案 0 :(得分:0)
您必须检查日志以查看导致崩溃的异常是什么。在日志(IDE的下半部分)中,将有Exception的名称,启动它的元素以及将找到问题的代码行的链接。
如果仍然无法以这种方式找到错误,可以在调试期间应用程序停止的代码行左侧设置断点,然后在调试模式下运行应用程序以确切了解发生了什么
另一个提示:通常,当我确定我的代码的正确性并且它运行但崩溃时,它是关于在清单(或所有服务)中声明所有活动并设置所有必需的权限。因为在这种情况下,在运行应用程序之前没有明显的错误。请告诉我们!
答案 1 :(得分:0)
好的,它可能与工具栏有关,让我们看看它是如何工作的。
在android中使用widget工具栏而不是actionbar更好,因为......
要做到这一点,你必须在Gradle(module:app)中添加(如果没有)appcompact v7库,就像这样:
dependecies { compile 'com.android.support:appcompat-v7:+' }
要删除操作栏并插入工具栏,您必须:
1. remove actionbar from manifest setting a no actionbar style:
<application
android:theme="@style/Theme.AppCompact.Light.NoActionBar"
/>
2. insert Toolbar widget into the layout of the activity:
<LinearLayout ...>
...
<android.support.v7.widget.Toolbar
android:id="@+id/mytoolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="8dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</LinearLayout>
3. insert the widget into the activity and set it as support toolbar:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = (Toolbar) findViewById(R.id.mytoolbar);
myToolbar.setLogo(R.mipmap.ic_launcher);
myToolbar.setTitle("Titolo");
myToolbar.setSubtitle(R.string.sottotitolo);
setSupportActionBar(myToolbar);
}
4. create a menù for the Toolbar, into res>menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game"
android:showAsAction="ifRoom"/>
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help"
android:showAsAction="never"/>
<item android:id="@+id/tutorials"
android:icon="@drawable/ic_tuts"
android:title="@string/tutorials"
android:showAsAction="always"/>
</menu>
5. bind menù to toolbar through the two methods into the activity:
@Override
public boolean onCreateOptionsMenu(Menu menu){
//Inflate the menu; this adds items to the action bar if it is present
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 2 :(得分:0)
有时它是由于重复从xml文件中获取ID而发生的,例如,如果您有两个xml文件(例如Main activity和Home),那么您都拥有ID为myTextview的Textview,因此一旦在您的Android Studio类中使用this(id)不会被视为错误,但是一旦您单击,应用程序将同时在两个活动中崩溃。” Enyoy编码。