15

我想使用Android Studio 2.2 preview 1,但是如果我創建一個新項目並添加一個簡單的EditText並嘗試運行,我得到以下錯誤。Android Studio 2.2 preview 1 EditText錯誤

05-20 15:53:00.748 11798-11798/br.com.tutorialandroid.sqlite E/AndroidRuntime: FATAL EXCEPTION: main 
Process: br.com.tutorialandroid.sqlite, PID: 11798 
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.tutorialandroid.sqlite/br.com.tutorialandroid.sqlite.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class EditText 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:5832) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class EditText 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
at br.com.tutorialandroid.sqlite.MainActivity.onCreate(MainActivity.java:22) 
at android.app.Activity.performCreate(Activity.java:6221) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)  
at android.app.ActivityThread.access$900(ActivityThread.java:172)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:145)  
at android.app.ActivityThread.main(ActivityThread.java:5832)  
at java.lang.reflect.Method.invoke(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:372)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-v21/abc_edit_text_material.xml from drawable resource ID #0x7f020015 
at android.content.res.Resources.loadDrawableForCookie(Resources.java:3707) 
at android.content.res.Resources.loadDrawable(Resources.java:3575) 
at android.content.res.TypedArray.getDrawable(TypedArray.java:750) 
at android.view.View.<init>(View.java:3939) 
at android.widget.TextView.<init>(TextView.java:923) 
at android.widget.EditText.<init>(EditText.java:74) 
at android.widget.EditText.<init>(EditText.java:70) 
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:60) 
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:56) 
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112) 
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:980) 
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039) 
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)  
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)  
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)  
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)  
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)  
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
at br.com.tutorialandroid.sqlite.MainActivity.onCreate(MainActivity.java:22)  
at android.app.Activity.performCreate(Activity.java:6221)  
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)  
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)  
at android.app.ActivityThread.access$900(ActivityThread.java:172)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:145)  
at android.app.ActivityThread.main(ActivityThread.java:5832)  
at java.lang.reflect.Method.invoke(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:372)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)  
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #24: <nine-patch> requires a valid 9-patch source image 
at android.graphics.drawable.NinePatchDrawable.updateStateFromTypedArray(NinePatchDrawable.java:445) 
at android.graphics.drawable.NinePatchDrawable.inflate(NinePatchDrawable.java:401) 
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1150) 
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:185) 
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1150) 
at android.graphics.drawable.InsetDrawable.inflate(InsetDrawable.j 

和我的佈局是

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/content_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="br.com.tutorialandroid.sqlite.MainActivity" 
    tools:showIn="@layout/app_bar_main" 
    tools:layout_editor_absoluteX="0dp" 
    tools:layout_editor_absoluteY="81dp"> 

    <EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Nome" 
    android:ems="10" 
    tools:layout_editor_absoluteX="84dp" 
    tools:layout_editor_absoluteY="262dp" 
    android:id="@+id/txtNome" 
    app:layout_constraintLeft_toLeftOf="@+id/content_main" 
    tools:layout_constraintLeft_creator="0" 
    app:layout_constraintTop_toTopOf="@+id/content_main" 
    tools:layout_constraintTop_creator="0" 
    app:layout_constraintRight_toRightOf="@+id/content_main" 
    tools:layout_constraintRight_creator="0" 
    app:layout_constraintBottom_toBottomOf="@+id/content_main" 
    tools:layout_constraintBottom_creator="0" /> 

</android.support.constraint.ConstraintLayout> 

我的build.gradle(模塊級)文件

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 
    defaultConfig { 
     applicationId "br.com.tutorialandroid.sqlite" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1' 
    testCompile 'junit:junit:4.12' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
    androidTestCompile 'com.android.support.test:runner:0.5' 
    androidTestCompile 'com.android.support:support-annotations:23.4.0' 
} 

和我的build.gradle(應用級)文件

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.0-alpha1' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

這是我在AS 2.2預覽版中的佈局預覽1

enter image description here

+0

你在項目中使用矢量?如果沒有,我認爲乾淨的構建必須解決你的問題,如果是的話,你添加'vectorDrawables.useSupportLibrary = true'到gradle文件? –

+0

@shayanpourvatan我沒有做任何事情,只是添加了一個EditText到應用程序,並嘗試運行..它編譯沒有錯誤或警告,但當試圖顯示在設備上,它關閉,我顯示我提到的錯誤關於這個話題 – Gorio

+0

我正在努力解決完全相同的問題。我在Linux上運行Android Studio 2.2,就像你猜我。 – Rames

回答

32

一個真正的鬥爭之後,這似乎是一個問題的gradle。從2.2.0-alpha1降級到穩定版本(2.1爲我工作)。

所以改變的build.gradle(應用級)和同步:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 
+0

Android跟蹤器上是否存在打開的錯誤?我希望在接下來的gradle發佈中看到這一點。 –

+6

更新:這裏它是https://code.google.com/p/android/issues/detail?id=210467 –

+2

2.2.0-alpha4應該從現在開始在一兩天內,它聲稱包含解決這個問題。 –

1

這似乎有關,但我不得不在edittexts造成了對三星標籤4崩潰的問題,但似乎正常工作在其他設備上。最後發現缺少/res/drawable-v21/abc_edit_text_material.xml,所以我從前面的sdk中取出了abc_edit_text_material.xml,並將其添加到我的項目中,直到所有錯誤都從即將到來的Gradle插件中計算出來。

1

不需要降級 只需創建一個擴展EditText的子類。 例如:

public class Text extends EditText { 
    public Text(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
} 

然後使用這個類在XML文件中instaed的EditText

<com.example.edittextproblem.Text 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="haha"/> 

的,你的問題就解決了:)

相關問題