2016-09-14 80 views
-1

所以我对Android工作室非常新。我通常只是看教程,并随时了解什么是一切,看看一切如何运作。我正在尝试使用collapsilbe工具栏按照教程查看卡片视图/回收站视图,并在完成代码(几乎与视频中显示的人物一样)后,该应用程序仍然无法运行。唯一改变的是图标,几个drawable和一些值(我在代码中编辑了它)。没有错误的Android工作室,应用程序仍然崩溃开放

这里的源代码,我跟着一职:https://github.com/delaroy/AndroidCardView?files=1

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

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

正如我所说,我只改变了图片和几个变量名称等。此外,所有已更改的内容都是固定的值等。

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

不知道这是一个电话问题还是什么。

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

+1

你真的应该读作[问]你张贴问题之前。这个问题几乎可以肯定会关闭,因为你没有发布任何源代码,也没有显示你得到的错误信息。 – Tibrogargan

+0

我发布的GitHub页面基本上是我正在使用的确切代码。正如我所说,我改变的唯一的一些变量名称和一些drawable。此外,我得到的错误(正如我再次说)不存在。我没有收到错误。试图打开时,应用程序崩溃。这只是一个“不幸的是,___已经关闭”。 – Xxero

+0

你改变了一些破坏代码的东西,并期望人们随机猜测你是做什么的? – Tibrogargan

回答

0

您必须检查日志以查看导致崩溃的异常情况。在日志中(IDE的下半部分),将会有Exception的名称,它启动它的元素,并且还会有指向发现问题的代码行的链接。

如果仍然无法以这种方式找到错误,则可以在调试时希望应用程序停止的代码行左侧设置断点,然后在调试模式下运行应用程序以准确查看发生。

另一个提示:当我确定代码的正确性并且它运行但崩溃时,通常是声明清单(或所有服务)中的所有活动并设置了所有必需的权限。因为在这种情况下,在运行应用程序之前没有明显的错误。让我们知道!

+0

E/AndroidRuntime:致命异常:主要 进程:com.xxerosec.fldoccs,PID:10093 java.lang.RuntimeException:无法启动活动ComponentInfo {com.xxerosec.fldoccs/com.xxerosec.fldoccs.MainActivity}:java.lang.IllegalStateException:此活动已经有一个由窗口装饰提供的操作栏。请勿在您的主题中请求Window.FEATURE_SUPPORT_ACTION_BAR并将windowActionBar设置为false以代替使用工具栏。 这就是我所看到的。 – Xxero

+0

打开主活动时,我也是刚得到这个: 渲染问题下面的类不能被实例化: - android.support.design.widget.CollapsingToolbarLayout(公开课,显示异常,清除缓存) 提示:使用浏览.isInEditMode()在您的自定义视图中跳过代码或在IDE中显示时显示示例数据异常详细信息android.content.resourcesResources $ NotFoundException at com.android.layoutlib.bridge.android.BridgeContext.obtainStyledAttributes(BridgeContext.java: 626)将堆栈复制到剪贴板 – Xxero

+0

好的,因为我可以看到它可能是关于您的操作栏。好的是Android Studio建议如何解决问题。它告诉你改用一个工具栏。现在我发布另一个有关它的信息的答案。 –

0

好吧,它可能是关于工具栏,让我们看看它是如何工作的。

在Android是更好地使用控件工具,而不是动作条,因为......

要做到这一点,你必须添加(如果没有)的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); 
    } 
} 
相关问题