私はAudacityのコースに従い、すべてのコードを入力することにしましたが、アプリを実行しようとするとエラーが発生します。
次のエラーが表示されます。
10-27 19:17:41.871 26679-26679/com.example.vhuhwavho.friendlychat W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41bbec08)
10-27 19:17:41.871 26679-26679/com.example.vhuhwavho.friendlychat E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.vhuhwavho.friendlychat, PID: 26679
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vhuhwavho.friendlychat/com.example.vhuhwavho.friendlychat.MainActivity}: Android.view.InflateException: Binary XML file line #0: Error inflating class Button
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2334)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2392)
at Android.app.ActivityThread.access$900(ActivityThread.Java:169)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1280)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:146)
at Android.app.ActivityThread.main(ActivityThread.Java:5487)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1283)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Android.view.InflateException: Binary XML file line #0: Error inflating class Button
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:719)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:761)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:769)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:498)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:398)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:354)
at Android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.Java:287)
at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:139)
at com.example.vhuhwavho.friendlychat.MainActivity.onCreate(MainActivity.Java:42)
at Android.app.Activity.performCreate(Activity.Java:5451)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1093)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2298)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2392)
at Android.app.ActivityThread.access$900(ActivityThread.Java:169)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1280)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:146)
at Android.app.ActivityThread.main(ActivityThread.Java:5487)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1283)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
at Android.content.res.TypedArray.getColor(TypedArray.Java:327)
at Android.support.v7.widget.TintTypedArray.getColor(TintTypedArray.Java:163)
at Android.support.v7.widget.ThemeUtils.getThemeAttrColor(ThemeUtils.Java:65)
at Android.support.v7.widget.AppCompatDrawableManager.createDefaultButtonColorStateList(AppCompatDrawableManager.Java:584)
at Android.support.v7.widget.AppCompatDrawableManager.getTintList(AppCompatDrawableManager.Java:536)
at Android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.Java:53)
at Android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.Java:74)
at Android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.Java:67)
at Android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.Java:109)
at Android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.Java:1024)
at Android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.Java:1081)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:690)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:761)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:769)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:498)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:398)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:354)
at Android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.Java:287)
at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:139)
at com.example.vhuhwavho.friendlychat.MainActivity.onCreate(MainActivity.Java:42)
at Android.app.Activity.performCreate(Activity.Java:5451)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1093)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2298)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2392)
at Android.app.ActivityThread.access$900(ActivityThread.Java:169)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1280)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:146)
at Android.app.ActivityThread.main(ActivityThread.Java:5487)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1283)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1099)
at dalvik.system.NativeStart.main(Native Method)
10-27 19:17:46.696 26679-26679/com.example.vhuhwavho.friendlychat I/Process: Sending signal. PID: 26679 SIG: 9
主なアクティビティは次のとおりです。
package com.example.vhuhwavho.friendlychat;
import Android.support.v7.app.AppCompatActivity;
import Android.os.Bundle;
import Android.text.Editable;
import Android.text.InputFilter;
import Android.text.TextWatcher;
import Android.view.Menu;
import Android.view.MenuInflater;
import Android.view.MenuItem;
import Android.view.View;
import Android.widget.Button;
import Android.widget.EditText;
import Android.widget.ImageButton;
import Android.widget.ListView;
import Android.widget.ProgressBar;
import Java.util.ArrayList;
import Java.util.List;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
public static final String ANONYMOUS = "anonymous";
public static final int DEFAULT_MSG_LENGTH_LIMIT = 1000;
private ListView mMessageListView;
private MessageAdapter mMessageAdapter;
private ProgressBar mProgressBar;
private ImageButton mPhotoPickerButton;
private EditText mMessageEditText;
private Button mSendButton;
private String mUsername;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUsername = ANONYMOUS;
// Initialize references to views
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mMessageListView = (ListView) findViewById(R.id.messageListView);
mPhotoPickerButton = (ImageButton) findViewById(R.id.photoPickerButton);
mMessageEditText = (EditText) findViewById(R.id.messageEditText);
mSendButton = (Button) findViewById(R.id.sendButton);
// Initialize message ListView and its adapter
List<FriendlyMessage> friendlyMessages = new ArrayList<>();
mMessageAdapter = new MessageAdapter(this, R.layout.item_message, friendlyMessages);
mMessageListView.setAdapter(mMessageAdapter);
// Initialize progress bar
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
// ImagePickerButton shows an image picker to upload a image for a message
mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO: Fire an intent to show an image picker
}
});
// Enable Send button when there's text to send
mMessageEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (charSequence.toString().trim().length() > 0) {
mSendButton.setEnabled(true);
} else {
mSendButton.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
mMessageEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(DEFAULT_MSG_LENGTH_LIMIT)});
// Send button sends a message and clears the EditText
mSendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO: Send messages on click
// Clear input box
mMessageEditText.setText("");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
}
activity_main.xml
の@layout
は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.vhuhwavho.friendlychat.MainActivity">
<ListView
Android:id="@+id/messageListView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_above="@+id/linearLayout"
Android:stackFromBottom="true"
Android:divider="@Android:color/transparent"
Android:transcriptMode="alwaysScroll"
tools:listitem="@layout/item_message"/>
<LinearLayout
Android:id="@+id/linearLayout"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_alignParentLeft="true"
Android:layout_alignParentStart="true"
Android:orientation="horizontal">
<ImageButton
Android:id="@+id/photoPickerButton"
Android:layout_width="36dp"
Android:layout_height="36dp"
Android:background="@Android:drawable/ic_menu_gallery" />
<EditText
Android:id="@+id/messageEditText"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:layout_weight="1" />
<Button
Android:id="@+id/sendButton"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom"
Android:enabled="false"
Android:text="@string/send_button_label"/>
</LinearLayout>
<ProgressBar
Android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"/>
</RelativeLayout>
item_message.xml
の@layout
は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="@dimen/activity_horizontal_margin"
Android:layout_marginStart="@dimen/activity_horizontal_margin"
Android:orientation="vertical">
<ImageView
Android:id="@+id/photoImageView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:adjustViewBounds="true" />
<TextView
Android:id="@+id/messageTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="0"
Android:textAppearance="?android:attr/textAppearanceLarge"
tools:text="Message" />
<TextView
Android:id="@+id/nameTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="0"
Android:textAppearance="?android:attr/textAppearanceSmall"
tools:text="Name" />
</LinearLayout>
button_selector.xml
の@drawale
は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:color="#999999" Android:state_enabled="false"/>
<item Android:color="@color/colorAccent" Android:state_enabled="true"/>
</selector>
colors.xml
の@values
は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#FF9800</color>
<color name="colorPrimaryDark">#E65100</color>
<color name="colorAccent">#2E7D32</color>
<color name="colorTitle">#ffffff</color>
</resources>
strings.xml
の@values
は次のとおりです。
<resources>
<string name="app_name">Friendly Chat</string>
<string name="sign_out">Sign Out</string>
<string name="send_button_label">Send</string>
</resources>
styles.xml
の@values
は次のとおりです。
<resources xmlns:tools="http://schemas.Android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--<item name="Android:colorButtonNormal">@drawable/button_selector</item>-->
<item name="colorButtonNormal">@drawable/button_selector</item>
<item name="Android:buttonStyle">@style/FriendlyButtonStyle</item>
</style>
<style name="FriendlyButtonStyle" parent="Widget.AppCompat.Button">
<item name="Android:textColor">@color/colorTitle</item>
</style>
</resources>
menu.xml
の@menu
は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<item
Android:id="@+id/sign_out_menu"
Android:title="@string/sign_out"
app:showAsAction="never"/>
</menu>
dimens.xml
の@values
は次のとおりです。
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
(w820dp) dimens.xml
の@values
は次のとおりです。
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>
エラーの解決を手伝ってください。
ボタンセレクターが問題の原因です..例外の残りを読んだ場合、リソースIDが見つからないため、根本的な原因が言及されます!
button_selector.xmlを次から変更する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:color="#999999" Android:state_enabled="false"/>
<item Android:color="@color/colorAccent" Android:state_enabled="true"/>
</selector>
に:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="#999999" Android:state_enabled="false"/>
<item Android:drawable="@color/colorAccent" Android:state_enabled="true"/>
</selector>
isAで問題なく動作します。
私の場合、1つのドロウアブルディレクトリ内ではないバックグラウンドxml。描画可能なhdpiフォルダーにすべてを追加してから、プロジェクトを再構築します。これでこの問題は解決しました。
これは私のために働いた!
以下の行にgradle.propertiesファイルを追加しようとしましたか?
Android.enableAapt2=false
実行してGradleデーモンのコマンドラインを再起動します
./gradlew --stop
https://developer.Android.com/studio/releases/gradle-plugin.html#optimizations
たぶんこれは誰にも役立つ>私は同様のクラッシュを得た
InflateException: Binary XML file line #0: Error inflating class EditText
Android 8.0および8.1のリリースapkでxmlフォントが原因で、最新のサポートライブラリを使用しなかったため、サポートライブラリのバージョンを更新して修正しました。
xmlを持つ
<EditText
Android:id="@+id/editEmail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:fontFamily="@font/sanfranciscodisplay_medium"
Android:hint="@string/enter_email_address"
Android:lines="1"
Android:inputType="textEmailAddress"
Android:layout_centerHorizontal="true"/>
私のgradle設定
BUILD_TOOLS_VER = '26.0.2'
TARGET_SDK_VER = 26
MIN_SDK_VER = 19
SUPPORT_LIBS_VER = '26.1.0' -> '27.0.2' (fix here)
GOOGLE_SERVICES_VER = '11.4.0' -> '11.8.0'
私は同じ問題を抱えており、最終的にgradle.propertiesを開き、次の行を追加して解決しました:
Android.enableAapt2=false
これがお役に立てば幸いです。