首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法找到由DataBindingComponent引起的符号类java.util.NoSuchElementException

无法找到由DataBindingComponent引起的符号类java.util.NoSuchElementException
EN

Stack Overflow用户
提问于 2018-10-27 00:52:21
回答 2查看 1.8K关注 0票数 2

我有一个在android 3.3 Beta 1中使用匕首版2.18 (implementation "com.google.dagger:dagger:2.18")的项目,但是当我运行它时,它会失败,出现以下错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
e/../../databinding/ActivityHomeBinding.java:46: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityHomeBinding
i: Note: [1] Wrote GeneratedAppGlideModule with: []
e: [kapt] An exception occurred: java.util.NoSuchElementException
        at com.sun.tools.javac.util.List$2.next(List.java:432)
        at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:302)
        at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:254)
        at dagger.android.processor.AndroidMapKeys.mapKeyValue(AndroidMapKeys.java:75)
        at dagger.android.processor.AndroidMapKeys.lambda$annotationsAndFrameworkTypes$5(AndroidMapKeys.java:56)
        at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
        at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
        at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419)

为了解决这个问题,我试过

What went wrong: Execution failed for task ':app:kaptGenerateStubsDebugKotlin'. Could not resolve all files for configuration ':app:kapt'. Failed to transform file 'jetifier-core-1.0.0-alpha10.jar' to match attributes {artifactType=processed-jar} using transform JetifyTransform Failed to transform '/home/s/.gradle/caches/modules-2/files-2.1/com.android.tools.build.jetifier/jetifier-core/1.0.0-alpha10/9eb7027c383061de12f93aae7a22cbeb97832d2a/jetifier-core-1.0.0-alpha10.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android/support/v4' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.) To disable Jetifier, set android.enableJetifier=false in your gradle.properties file.

  • 使用匕首版本的2.16,它仍然失败与奇怪的错误 e: /home/s/G/app/src/main/java/com/edijae/crusar/sample/di/modules/ApiModule.kt:(11,16):未解决引用:日志记录e: /home/s/G/app/src/main/java/com/edijae/crusar/sample/di/modules/ApiModule.kt:(40,40):未解决引用: HttpLoggingInterceptor e: /home/s/G/app/src/main/java/com/edijae/crusar/sample/di/modules/ApiModule.kt:(41,35):未解决的参考资料: HttpLoggingInterceptor

然而,当我导航到ApiModule.kt时,没有错误。也就是说,import okhttp3.logging.HttpLoggingInterceptor没有用红色高亮显示,我可以去上那门课。

下面是我的主要build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 buildscript {
        ext.kotlin_version = '1.2.71'
        ext.realmVersion ='5.4.2'
        repositories {
            google()
            jcenter()
            maven {
                url "https://maven.google.com"
            }
            maven { url "https://jitpack.io" }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.4.0-alpha02'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath "io.realm:realm-gradle-plugin:$realmVersion"

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

    allprojects {
        repositories {
            google()
            jcenter()
            maven {
                url "https://maven.google.com"
            }
            maven { url "https://jitpack.io" }
        }
    }

    /**
     * Configure common tasks on all the submodules
     */
    allprojects { project ->

        // Get versions, this is where we store things
        // like the list of submodules or the version
        project.apply from: "$rootDir/versions.gradle"

        gradle.projectsEvaluated {
            tasks.withType(JavaCompile.class) {
                options.compilerArgs << "-Xmaxerrs" << "10000"
            }
        }
        afterEvaluate {
            if (project.plugins.hasPlugin("kotlin-kapt")) {
                kapt {
                    javacOptions {
                        option("-Xmaxerrs", 10000)
                    }
                }
            }
        }
    }
    task clean(type: Delete) {
        delete rootProject.buildDir
    }  

下面是我应用程序的build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'maven'
apply plugin: 'realm-android'

android {
    compileSdkVersion 28
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled true
    }
        compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}


dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    //kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

    //glide
    kapt "com.github.bumptech.glide:compiler:4.8.0"
    implementation "com.github.bumptech.glide:glide:4.8.0"

    //dagger
    implementation "com.google.dagger:dagger:2.18"
    kapt "com.google.dagger:dagger-compiler:2.18"
    implementation "com.google.dagger:dagger-android:2.18"
    implementation "com.google.dagger:dagger-android-support:2.18"

    // if you use the support libraries
    kapt "com.google.dagger:dagger-android-processor:2.18"

    //retrofit
    implementation "com.squareup.retrofit2:retrofit:2.4.0"
    implementation "com.squareup.retrofit2:converter-gson:2.4.0"
    implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
    debugImplementation "com.squareup.okhttp3:logging-interceptor:3.8.0"


     testImplementation 'junit:junit:4.12'
     androidTestImplementation "androidx.test:runner:1.0.0"
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

     }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-30 10:52:17

我设法解决了错误

  • debugImplementation "com.squareup.okhttp3:logging-interceptor:3.8.0"改为implementation "com.squareup.okhttp3:logging-interceptor:3.8.0"。这解决了Unresolved reference: HttpLoggingInterceptor错误。
  • 在我的主build.gradle中添加吉蒂弗处理器 classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'
  • 在我的app's build.gradle中添加增强器核心 kapt 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02' annotationProcessor 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02'

主级build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
buildscript {
    ext.kotlin_version = '1.3.0'
    ext.realmVersion ='5.4.2'
    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0-alpha02'
        classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        maven { url "https://jitpack.io" }
    }
}

应用程序的build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'maven'
apply plugin: 'realm-android'

android {
    compileSdkVersion 28
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled true
    }
        compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}


dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    kapt 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02'
    annotationProcessor 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02'

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

    kapt "com.github.bumptech.glide:compiler:4.8.0"
    implementation "com.github.bumptech.glide:glide:4.8.0"

    implementation "com.google.dagger:dagger:2.18"
    kapt "com.google.dagger:dagger-compiler:2.18"
    implementation "com.google.dagger:dagger-android:2.18"
    implementation "com.google.dagger:dagger-android-support:2.18"

    // if you use the support libraries
    kapt "com.google.dagger:dagger-android-processor:2.18"

    implementation "com.squareup.retrofit2:retrofit:2.4.0"
    implementation "com.squareup.retrofit2:converter-gson:2.4.0"
    implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
    implementation "com.squareup.okhttp3:logging-interceptor:3.8.0"


     testImplementation 'junit:junit:4.12'
     androidTestImplementation "androidx.test:runner:1.0.0"
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

     }
票数 3
EN

Stack Overflow用户

发布于 2018-10-27 04:45:33

我也面临着同样的问题

证明此错误与Jetifier错误有关。

见:

https://github.com/google/dagger/issues/1245

https://issuetracker.google.com/issues/115738511

解决方案:暂时坚持使用匕首2.16

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
implementation "com.google.dagger:dagger-android:2.16"  
implementation "com.google.dagger:dagger-android-support:2.16"  
kapt "com.google.dagger:dagger-compiler:2.16"  
kapt "com.google.dagger:dagger-android-processor:2.16"  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53020234

复制
相关文章
Phpstorm配置git版本控制器
Phpstorm中配置git版本控制器:打开PhpStorm,点击File ,Settings ,找到Version Control 找到Git填写Path to Git executable点击Test测试成功就可以了。
OwenZhang
2021/12/08
4260
Phpstorm配置git版本控制器
LQR控制器(控制器的功能是什么)
LQR控制器是常见的最优控制器,它的主要特点是将控制量加入到了成本函数中。 对于线性系统: x ˙ = A x + B u \dot x = Ax+Bu x˙=Ax+Bu 设计控制器 u = − K x u = -Kx u=−Kx使得 J = 1 2 ∫ 0 ∞ x T Q x + u T R u   d t J = \frac{1}{2}\int_0^\infty x^TQx+u^TRu \,dt J=21​∫0∞​xTQx+uTRudt 最小。其中, x T Q x x^TQx xTQx是状态部分, u T R u u^TRu uTRu是控制部分。
全栈程序员站长
2022/08/01
1K0
[CodeIgniter4]-控制器
简而言之,一个控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的。
landv
2020/03/05
3.6K0
高级性能测试系列《19.循环控制器、foreach控制器和if控制器》
给你一个西瓜,但是不切成多块,切成两半。用个勺子挖着吃,我也不知道吃多少口能把西瓜吃完。
清菡
2022/12/02
2.5K0
高级性能测试系列《19.循环控制器、foreach控制器和if控制器》
为控制器配置日期处理 原
第一步:定义父类 package group.esperanto.action.util; import java.text.SimpleDateFormat; import java.util.Locale; import javax.annotation.Resource; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.context.MessageSourc
南郭先生
2018/08/14
2650
SDRAM控制器设计(8)SDRAM控制器仿真验证
接下来,结合仿真模型(镁光官网提供的 SDRAM 模型)sdr文件,和编写的 testbench 文件验证所设计的控制器是否正确。 testbench如下
全栈程序员站长
2022/09/16
8300
域控制器
强制域控制器计算机帐户向受威胁者控制的主机进行身份验证可能会导致域受损。涉及强制身份验证的最值得注意的技术是使用加密文件系统远程协议 ( MS-EFSR )的PetitPotam攻击。然而,这不是唯一可以用于域升级的协议。意识到可能被滥用的替代协议可能会给红队运营商带来优势,因为蓝队可能没有实施策略来防止各种协议的域升级。
Khan安全团队
2022/01/12
1.2K0
AngularJS 控制器
控制器是 JavaScript 对象,由标准的 JavaScript 对象的构造函数 创建。
陈不成i
2021/07/23
1.2K0
kubernetes | 控制器
基于centos7.9,docker-ce-20.10.18,kubelet-1.22.3-0
Amadeus
2022/10/25
6280
kubernetes | 控制器
Go语言单控制器和多控制器
在Golang的net/http包下有ServeMux实现了Front设计模式的Front窗口,ServeMux负责接收请求并把请求分发给处理器(Handler)
IT工作者
2022/03/30
5280
SDRAM控制器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117177.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
6320
SDRAM控制器
控制器操作
一.控制器操作 我们首先复习一下基本的控制器定义和方法执行方式。 第一步:控制器默认创建在当前模块下的 Controller 目录下; 第二步:按照指定的命名规则:控制器名(首字母大写)+Controller.class.php; 第三步:控制器里的方法必须是 public 公共的; //控制器 class UserController extends Controller { public function index() { //index()方法在URL访问时可以忽略 } } URL 访问:http://localhost/demo39/User/index/
PM吃瓜
2019/08/13
6470
thikphp 控制器
控制器定义 类名和文件名一样, 渲染输出 渲染输出使用return输出 <?php namespace app\admin\controller; use app\admin\model\User;
mySoul
2019/05/30
6250
swift 获取控制器
得到view的控制器 /** view 获取它的控制器 */ public func viewController()->UIViewController? {
星宇大前端
2019/01/15
1.5K0
UART接口控制器
主设备与从设备通过总线来进行数据通信,是一个数字系统不可或缺的一部分,本篇讲述一种常见的总线控制器UART串行数据接口,也称为串口。 串口的标准一般有,RS-232、RS-422与RS-485标准,我们讲述的是RS-232接口信号。
全栈程序员站长
2022/10/05
6960
UART接口控制器
Sdram控制器(二)
经过几天的Sdram项目调试,小编想说简直了~,感触颇深,今天就分享给大家喽~ Sdram项目调试感悟: 1. 首先保证仿真正确,能够完全读写整个sdram model【难点二】 2. 保证板子上的sdram是正常工作的。 3. 时钟:sdram的输入时钟能在数据中间采样(做相移或者output delay)【难点一】 4. 约束:时序约束和物理约束 5. 其他 复位或者VIO:Debug的时候会感受到这个神奇之处 Oddr2的使用,这里有两个坑: (1)如果输出管脚不是时钟引脚,则需要加CLOCK_D
瓜大三哥
2018/06/11
1.4K0
Sdram控制器(三)
今天学习什么呢? 依然是Sdram控制器有关问题 一、写数据效率 实际带宽与理论带宽 理论带宽 BDrd=CLKrd·WIDTHdata = 166MHz·32bits = 5.312Gbps 实际
瓜大三哥
2018/06/11
8110
Kubernetes ReplicaSet控制器
ReplicaSet的目的是为了维护一组稳定的Pod集合,用来保证给定数量的Pod可用性。
shysh95
2022/10/31
4160
iOS结合导航控制器和标签栏控制器
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
全栈程序员站长
2022/07/06
6020
Kubernetes DaemonSet控制器
DaemonSet可以在全部或者某些节点上运行一个Pod的副本,该Pod的副本随着节点的加入被创建,随着节点的删除被回收。
shysh95
2022/10/31
3220

相似问题

从控制器动态启用/禁用输入文本

23

MVC控制器启用禁用控件

10

Spring :配置xml,使控制器根据参数返回视图

31

禁用/配置每个控制器的HoptoadNotifier

11

如何禁用控制器中的输入

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文