android r包错误,Android库与Gradle组装,但在connectionCheck上“包R不存在”错误引发...

我有一个带有下面文件结构的android库.

Android_Library

├── libs

└── src

├── instrumentTest

│   ├── assets

│   └── java

└── main

├── aidl

├── gen

├── java

└── res

当我使用Gradle组装库时,任务成功运行.但是,当我尝试运行connectedCheck时,我得到以下关于找不到R文件的错误:

:validateDebugSigning

:packageDebug

:assembleDebug

:prepareTestDependencies

:compileTestAidl

:processTestTestManifest

:generateTestBuildConfig

:mergeTestAssets

:compileTestRenderscript

:mergeTestResources

:processTestResources

:compileTest

Android_Library/src/instrumentTest/java/com/example/library/util/UtilTests.java:514: error: package R does not exist

case R.plurals.time_days_ago: {

^

...

Note: Recompile with -Xlint:unchecked for details.

18 errors

:compileTest FAILED

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':compileTest'.

> Compilation failed; see the compiler error output for details.

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

我原本以为这是R资源生成中的一个问题,但是我希望它在组装时也会失败.

编辑:

我已经尝试了和R import语句(我知道是不正确的)并且没有和R import语句.两者都会导致相同的错误.

解决了:

感谢@ Xav的提示(下面):我正在从一个更大的项目中提取一个库,并尝试自己构建它以进行模块化测试.

改变了

import com.example.app.R;

库文件中的语句

com.example.library.R

允许连接的检查运行.

(显然主应用程序和库的res文件是相同的).

补充说明:

由于switch语句接受R id,因此switch语句在编译时有效.但是,当gradlew connectedCheck失败时,我仍然不确定为什么gradlew汇编使用错误的import语句.

解决方法:

虽然这似乎与错误无关,但我发现您正在使用来自R类的ID执行switch语句,但您在库中.

这是不可能的,因为这些ID不是最终的.

我想知道这是错误,但编译器混淆并输出不同的错误消息.

标签:android,build-process,gradle,automated-tests

来源: https://codeday.me/bug/20190703/1368930.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值