gpt4 book ai didi

android - GrantPermissionRule 未解析的引用

转载 作者:行者123 更新时间:2023-11-29 23:16:22 26 4
gpt4 key购买 nike

我正在使用 Android Studio 通过 kotlin 创建一个应用程序。我正在尝试对我的 MainActivity 类进行单元测试,因为我使用的是 API 28,所以我需要授予权限才能运行单元测试。我将 @get:Rule var permissionRule = GrantPermissionRule.grant(android.Manifest.permission.RECORD_AUDIO) 放在我的测试类的顶部,但 Android Studio 告诉我 GrantPermissionRule 是一个未解析的引用。我的代码如下。

MainActivity 类:

class MainActivity : AppCompatActivity(), MediaPlayer.OnCompletionListener {

lateinit var recorder: MediaRecorder
lateinit var player: MediaPlayer
lateinit var file: File
lateinit var button1: Button
lateinit var button2: Button
lateinit var button3: Button
lateinit var tv1: TextView
// coding180.com

override fun onCreate(savedInstanceState: Bundle?) {

// call the super class onCreate to complete the creation of activity
// like the view hierarchy
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getPermissionToRecordAudio()
}

tv1 = findViewById(R.id.tv1) as TextView
button1 = findViewById(R.id.btnStart) as Button
button2 = findViewById(R.id.btnStop) as Button
button3 = findViewById(R.id.btnPlay) as Button

...

}

测试类:

@RunWith(RobolectricTestRunner::class)
class MainActivityTest {

@get:Rule var permissionRule =
GrantPermissionRule.grant(android.Manifest.permission.RECORD_AUDIO)

lateinit var testMainActivity: MainActivity

@Before
fun setup() {
testMainActivity = MainActivity()
}

@Test
@Throws(Exception::class)
fun onCreateTest() {

//Activity variables
val intent = Intent()
val bundle = Bundle()
intent.putExtras(bundle)
val controller = Robolectric.buildActivity(MainActivity::class.java,
intent).create()
val activity = controller.get() as Activity

//Start activity
controller.start()

//Asserts
assertFalse(activity.isFinishing)
}

我没能找到其他有此问题的人。有谁知道为什么 Android Studio 无法识别 GrantPermissionRule 以及如何修复它?

最佳答案

你的代码看起来没问题,添加

androidTestImplementation 'com.android.support.test:rules:1.0.2'

到你的build.gradle

关于android - GrantPermissionRule 未解析的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com