이 질문은 이전에 요청되었지만 답변이 없습니다. 그래서 나는 다시 운을 시험해 본다.Oreo에서 내 URI에 ContentProvider.notifyChange에 대한 보안 예외가 발생했습니다.
내 앱은 동기화 측면에서 Google의 IO 일정 앱의 완벽한 복제품입니다. 코드는 정확히 this 위치에 있습니다.
SDK (25) 모두에 대해 실행
여기에 작동합니다 - 나는 26에 갈 때, 그것은이 예외와 충돌 :12-28 21:11:13.641 6153-6190/? E/AndroidRuntime: FATAL EXCEPTION: IntentService[DataBootstrapService]
Process: de.XXX.XXX.debug, PID: 6153
java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority
다른 자원에서 제안한 것처럼 : 예, 나는 내 콘텐츠 제공 업체에 권한을 설정했습니다. 이 오류는 터무니 없습니다. null과 사용자 0이 왜 생기는지 전혀 알지 못합니다.
누구에게 무엇을 검색 할 생각이 있습니까? 감사합니다.
자세한 내용은 문의 해 주셨지만 Google이 IO 일정에서 정한대로 정확하게 처리합니다. 다음과 같이
내 AndroidManifest를 내 공급자를 포함
<provider
android:name=".provider.PendelbusProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:syncable="true"/>
충돌을 일으키는 선은 이것이다 :
내 CONTENT_AUTHORITY는 다음과 같이 정의된다getContentResolver().notifyChange(Uri.parse(PendelbusContract.CONTENT_AUTHORITY), null, false);
: (간접적 통해 변수를 구축)
public static final String CONTENT_AUTHORITY = BuildConfig.AUTHORITY;
// equals to: "de.zordid.pendelbus.debug.provider"
나는 메시지가 나타내는 것으로 전혀 이해하지 못합니다.
"공급자 null"이란 무엇이며 "사용자 0"은 무엇입니까?
제공자의 권한 URI, 권한 및 다른 앱 또는 클래스에서 액세스하는 방법을 게시하십시오. – matrix