在Android工作室中没有错误,应用程序仍然在打开时崩溃

时间:2016-09-14 02:54:35

标签: android crash

所以我对Android工作室非常陌生。我通常只是观看教程,然后继续学习一切,看看一切是如何运作的。我正在尝试使用collapsilbe工具栏跟踪卡片视图/回收站视图的教程,并在完成代码后(几乎与视频中显示的人一样),应用程序仍然无法运行。我唯一改变的是图标,几个drawable和一些值(我在代码中编辑了它)。

以下是我所遵循的源代码的帖子:https://github.com/delaroy/AndroidCardView?files=1

正如我所说,没有任何错误或任何错误。但是当我运行应用程序时,它会立即崩溃。

这也是我的第一篇文章,所以如果需要任何其他信息,请告诉我。

正如我所说,我只改变了图片和一些变量等名称。此外,所有改变的东西都是固定在价值等等。

我在手机上运行了其他应用,没有任何问题。

不确定这是手机问题还是什么问题。

我正在使用运行Android 5.0的Note 3。

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编码。