带Hilt的依赖项注入会自动为应用添加WRITE_EXTERNAL_STORAGE和READ_PHONE_STATE权限

时间:2020-11-12 03:50:06

标签: android dagger-hilt

在为我的应用添加Hilt依赖关系之后,接着是guide,其最新版本为 2.28-alpha

// build.gradle

buildscript {
    ...
    dependencies {
        ...
        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
    }
}
// app/build.gradle

...
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'

android {
    ...
}

dependencies {
    implementation "com.google.dagger:hilt-android:2.28-alpha"
    kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
}

我意识到我的应用程序自动添加了WRITE_EXTERNAL_STORAGE和READ_PHONE_STATE权限。

我通过以下方式检查了权限:MyApp-> AppInfo->权限

  • WRITE_EXTERNAL_STORAGE
  • READ_PHONE_STATE

尽管如此,我从未在Manifest.xml文件中或以编程方式请求这些权限。

我尝试删除Hilt依赖项,然后再次检查权限。而且我没有看到他们。

这是Hilt的错误吗?有人有同样的问题吗?

更新:这确实是一个错误,将其更新为最新版本可以解决该问题 https://github.com/googlecodelabs/android-hilt/issues/11

1 个答案:

答案 0 :(得分:1)

这是Dagger 2.28中的bug,是由于class Solution: a = set() def backtrack(self, start, string, palindrome, stack): if start == len(string): if ",".join(stack) not in self.a: self.a.add(",".join(stack)) return if start == len(string)-1: stack.append(string[start]) if ",".join(stack) not in self.a: self.a.add(",".join(stack)) stack.pop() return for end in range(start, len(string)): if start == end: stack.append(string[start]) self.backtrack(start+1, string, palindrome, stack) stack.pop() elif string[start] == string[end] and ((end == start+1) or palindrome[start+1][end-1]): stack.append(string[start:end+1]) palindrome[start][end] = True self.backtrack(end+1, string, palindrome, stack) stack.pop() def partition(self, string): stack = answer = [] palindrome = [[False for __ in range(len(string))] for _ in range(len(string))] for i in range(len(string)): palindrome[i][i] = True self.backtrack(0, string, palindrome, stack) ans = [item.split(",") for item in self.a] self.a.clear() return ans 软件包缺少aab引起的。它已在2.28.1版中修复。

要删除那些不需要的权限,只需升级您的Dagger依赖项:

[["a","a","b"],["aa","b"]]