我将Android工作室从3.0升级到3.1并将Gradle从3.1升级到4.4后,在android中出现此错误。
我该如何解决?
它与Gradle 3.1和android studio 3.0一起正常工作。
我怎样才能让它发挥作用?
Gradle app:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
mavenCentral()
google()
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 27
dataBinding {
enabled = true
}
defaultConfig {
applicationId "com.example.example"
minSdkVersion 22
targetSdkVersion 23
versionCode 13
versionName "1.13"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.0.2'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.firebase:firebase-crash:11.8.0'
implementation 'com.google.firebase:firebase-core:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.6.8'
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.2.0'
compile 'com.amazonaws:aws-android-sdk-core:2.6.8'
compile 'com.amazonaws:aws-android-sdk-s3:2.6.8'
compile 'com.amazonaws:aws-android-sdk-ddb:2.6.8'
compile 'com.github.twinkle942910:monthyearpicker:0.0.1'
compile('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') {
transitive = true;
}
compile 'com.google.android.gms:play-services-location:11.8.0'
compile 'com.zsoltsafrany:needle:1.0.0'
implementation 'com.android.support:cardview-v7:27.0.2'
compile 'com.white:progressview:1.0.1'
compile 'br.com.simplepass:loading-button-android:1.8.1'
implementation files('/libs/android-sdk-0.1.0.jar')
compile 'com.android.support:support-v4:27.0.2'
compile 'com.clevertap.android:clevertap-android-sdk:3.1.8'
compile 'testfairy:testfairy-android-sdk:1.+@aar'
implementation 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
}
apply plugin: 'com.google.gms.google-services'
摇篮-项目:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.31"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:3.1.0'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Gradle-wrapper.Properties:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Gradle.properties
org.gradle.jvmargs=-Xmx1536m
android.databinding.enableV2=true
Layout.xml
<?xml version="1.0" encoding="utf-8"?>
<layout 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.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:padding="4dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".Class_application_MyClass1"
tools:showIn="@layout/activity_class_application_myclass_1">
<ScrollView
android:id="@+id/scrollView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="60dip"
android:layout_marginTop="20dip"
android:padding="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:padding="25dp">
<android.support.design.widget.TextInputLayout
android:id="@+id/name_TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp">
<android.support.design.widget.TextInputEditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="10dp"
android:hint="Name"
android:imeOptions="actionNext"
android:singleLine="true"
android:text=""
android:textSize="13sp" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/number_TextInputLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="25dp">
<android.support.design.widget.TextInputEditText
android:id="@+id/number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="10dp"
android:hint="number"
android:inputType="textCapCharacters"
android:maxLength="10"
android:text=""
android:textAllCaps="true"
android:textSize="13sp" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/classnumber_TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp">
<android.support.design.widget.TextInputEditText
android:id="@+id/class_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="10dp"
android:hint="class"
android:imeOptions="actionNext"
android:inputType="textCapCharacters"
android:maxLength="15"
android:singleLine="true"
android:text=""
android:textSize="12sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</ScrollView>
</android.support.constraint.ConstraintLayout>
</layout>
Activity.xml
<?xml version="1.0" encoding="utf-8"?>
<layout 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.support.design.widget.CoordinatorLayout
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Class_application_MyClass1">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/fundscorner_blue"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<android.support.constraint.ConstraintLayout
android:id="@+id/linearLayout3"
android:layout_width="fill_parent"
android:layout_height="20dp"
android:background="@color/white"
app:layout_anchor="@+id/content_class_application_myclass_1"
app:layout_anchorGravity="top|center">
<com.white.progressview.HorizontalProgressView
android:id="@+id/progress100"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:progress="25"
app:progressReachColor="@color/colorPrimary"
app:progressTextColor="@color/colorPrimary"
app:progressTextVisible="false"
android:minHeight="20dip"
android:maxHeight="20dip"
/>
</android.support.constraint.ConstraintLayout>
</android.support.design.widget.AppBarLayout>
<include
android:id="@+id/content_class_application_myclass_1"
layout="@layout/content_class_application_myclass_1"/>
<LinearLayout
app:layout_anchor="@+id/content_class_application_myclass_1"
app:layout_anchorGravity="bottom|center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:background="@drawable/ripple"
style="?borderlessButtonStyle"
android:id="@+id/button_stage1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/fundscorner_blue"
android:text="Next"
android:textColor="@color/white"
/>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
</layout>
在JAVA文件中:
ActivityClassApplicationMyClass1Binding binding;
binding = DataBindingUtil.setContentView(this, R.layout.activity_class_application_myclass_1);
binding.name.settext("Name");
答案 0 :(得分:20)
因为您使用数据绑定的类名或包名。这些类(使用数据绑定)必须以大写单词开头,包以小写开头。
答案 1 :(得分:8)
正如Mehdi在他的回答中所说,出现这个错误的原因是绑定和变量类的Java包名称中的大小写。
进一步检查日志时,您可以看到错误在ClassName.bestGuess(String)处抛出。原因是绑定类的包名称(即布局中<variable>
字段中的包名称)在包名中包含大写字符。这会导致该方法无法将类名与包名分开,并且会引发错误
[老实说,这是一种相当糟糕的行为,但可能还没有更好的方法存在](
生成的绑定类也是如此,它也需要在一个没有任何大写字母的包中。因为它默认使用您的应用程序包名称,您必须通过将class
属性添加到布局中的<data>
字段(Read more here)来更改Java包名称。
示例:强>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data class="com.example.ExampleDataBinding">
<variable
name="example"
type="com.example.ExampleClass" />
</data>
</layout>
答案 2 :(得分:1)
Binding类名称似乎是错误的。您可以尝试将其从ActivityClassApplicationMyClass1Binding
更改为ActivityClassApplicationMyclass1Binding
答案 3 :(得分:1)
您需要所有的类名以大写字母开头,并以小号开头。
答案 4 :(得分:0)
正如其他人所建议的那样,程序包名称必须以小写字母开头。我的问题是它以下划线“ _”开头,这也是不允许的。