2017-09-28 18 views
0

アンドロイド用の電卓プログラムを作成し、プログラムを書くためにすべてのボタンを持つxmlファイルを持っています。それはアンドロイドスタジオのデザイン部分に表示されますが、私はアンドロイドの携帯電話(エミュレータではなく、私のパソコンでは遅すぎます)でクラッシュするようにアプリケーションを実行しようとしています。理由もわからない。setContentView(R.layout.activity_main)はアプリケーションをクラッシュさせます

これは私のxmlファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<layout> 
    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnCount="4" 
     android:rowCount="7" 
     tools:context="com.example.pvtboromeo.calc.MainActivity"> 

     <EditText 
      android:id="@+id/editText" 
      android:background="@android:color/black" 
      android:textColor="#FFFFFF" 
      android:layout_row="0" 
      android:layout_column="0" 
      android:layout_columnSpan="4" 
      android:layout_rowSpan="2" 
      android:layout_rowWeight="2" 
      android:layout_columnWeight="4" 
      android:enabled="false" 
      android:gravity="bottom|right" 
      android:paddingRight="15sp" 
      android:paddingBottom="15sp" 
      android:textAlignment="gravity" 
      android:textSize="40sp"/> 

     <Button 
      android:id="@+id/buttonC" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="2" 
      android:layout_rowWeight="1" 
      android:background="@drawable/button_border" 
      android:text="C" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/buttonNegative" 
      android:layout_row="2" 
      android:layout_column="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="+/-" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonPercent" 
      android:layout_row="2" 
      android:layout_column="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="%" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonDivide" 
      android:layout_row="2" 
      android:layout_column="3" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border2" 
      android:text="/" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonSeven" 
      android:layout_row="3" 
      android:layout_column="0" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="7" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/buttonEight" 
      android:layout_row="3" 
      android:layout_column="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="8" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonNine" 
      android:layout_row="3" 
      android:layout_column="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="9" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonMultiply" 
      android:layout_row="3" 
      android:layout_column="3" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border2" 
      android:text="X" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonFour" 
      android:layout_row="4" 
      android:layout_column="0" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="4" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/buttonFive" 
      android:layout_row="4" 
      android:layout_column="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="5" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonSix" 
      android:layout_row="4" 
      android:layout_column="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="6" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonSubtract" 
      android:layout_row="4" 
      android:layout_column="3" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border2" 
      android:text="-" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonOne" 
      android:layout_row="5" 
      android:layout_column="0" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="1" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/buttonTwo" 
      android:layout_row="5" 
      android:layout_column="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="2" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonThree" 
      android:layout_row="5" 
      android:layout_column="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="3" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonAdd" 
      android:layout_row="5" 
      android:layout_column="3" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border2" 
      android:text="+" 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonZero" 
      android:layout_column="0" 
      android:layout_columnSpan="2" 
      android:layout_columnWeight="2" 
      android:layout_row="6" 
      android:layout_rowWeight="1" 
      android:background="@drawable/button_border" 
      android:text="0" 
      android:textSize="20sp" /> 

     <Button 
      android:id="@+id/buttonDecimal" 
      android:layout_row="6" 
      android:layout_column="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border" 
      android:text="." 
      android:textSize="20sp"/> 

     <Button 
      android:id="@+id/buttonEquals" 
      android:layout_row="6" 
      android:layout_column="3" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:background="@drawable/button_border2" 
      android:text="=" 
      android:textSize="20sp"/> 

    </GridLayout> 
</layout> 

そしてこれはsetContentViewコードなしで私のjavaファイル

package com.example.pvtboromeo.calc; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

、私のアプリの実行が、何も(当然)が表示されていないですが、今私のアプリがクラッシュします私はそれを実行しようとすると。エラーは 'Unfortunatly、Calc +が停止しました。

私はアンドロイド開発には初めてです。何か不足していますか?私のすべての構文は良いようです。

注: android.Rは私のパッケージRの代わりに輸入された場合、私はまたチェックし、それがないの...

編集:だから私はちょうどテストプロジェクトで周り台無しきたし、それがアプリケーションをクラッシュさせるGridLayoutだと分かった。私はアンドロイド5.1.1(Lolipop)を使用して実行している場合は、それが役立つかどうかは分かりません。私はそれがapi 22だと信じています。これを修正する方法はありますか?

+0

スタックトレースを追加すると便利です。 –

+0

実際には、最初と最後にタグを削除することで問題を解決しました。 – Vince

答えて

0

1)データバインディングを使用するようにアプリを設定:アプリ)を挿入:

android { 
    .... 
    dataBinding { //line to insert 
    enabled = true //line to insert 
} 

}

1.1)プロジェクトをsynk

は(モジュールをbuild.gradleに行きます。

2)あなたのレイアウトタグに挿入します。

xmlns:android="http://schemas.android.com/apk/res/android" 

あなたのXMLコードは次のように起動します:

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <GridLayout 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnCount="4" 
     android:rowCount="7" 
     tools:context="com.example.pvtboromeo.calc.MainActivity"> 

3)は、プロジェクト

4)プロジェクトを実行を再構築します。 https://developer.android.com/topic/libraries/data-binding/index.html

幸運を:

あなたはこの外観をデータバインディングについての詳細情報が必要な場合!

これは私のコードです:

build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.1" 
    defaultConfig { 
     applicationId "your_app_id" 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dataBinding { 
     enabled = true 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.+' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    testCompile 'junit:junit:4.12' 
} 

はMainActivity:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ActivityMainBinding activityMainBinding = DataBindingUtil 
       .setContentView(this, R.layout.activity_main); 

    } 
} 

がActivityMainBindingを使用する前に、プロジェクトを再構築することを忘れないでください。

+0

私はデータバインディングを使用しようとしましたが、いつもresours ActivityMainBindingや何かlolが見つからないというエラーがありました。だから私はバインドの笑をあきらめました – Vince

+0

MainActivityでActivityMainBindingクラスを使用する前にプロジェクトを再構築しましたか?今すぐコードを投稿しますので、そのコードを使用してみてください。 – moamsi

関連する問題