dla mojej aplikacji, która Zajmuję się z najnowszym Androidem Studio Używam tego współzależności wewnątrz to Gradle plik:Android Gradle Oczywisty Fuzja: Zastąp „używa-gość” cechy pochodzące z biblioteki
dependencies {
compile 'com.android.support:support-v4:21.0.+'
compile 'com.helpshift:android-aar:3.7.1'
}
biblioteka com.helpshift:android-aar:3.7.1
potrzebuje następujące zgodę na cechę, że nie używam w moim głównym aplikacji:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Jak opisano here i here mogę zastąpić atrybuty z deklaracji XML z zaimportowanej biblioteki o nazwie .
Ale czy mogę również zastąpić manifesty XML, takie jak wspomniana, takie jak wymienione uses-permission
?
Próbowałem już coś takiego w moim głównym manifestu, ale to nie działa:
<permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove"
tools:selector="com.helpshift">
</permission>
zmienia również element do <uses-permission>
<permission>
nie pomoże. Aplikacja nadal prosi o pozwolenie na dostęp do karty SC.
Moim głównym AndroidManifest.xml wygląda to teraz:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
xmlns:tools="http://schemas.android.com/tools"
package="com.bmi.rechner" >
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove"
tools:selector="com.helpshift">
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application
...
Aktualizacja: Sugerowana odpowiedź przez @CommonsWare działa.
To tylko moja tools:selector="com.helpshift"
, która nie jest poprawna. Zostawiam to, ponieważ jestem pewien, że nie będę potrzebował tego zezwolenia w żadnej innej bibliotece przez jakiś czas.
Zgłosił także feature request, aby poprawić raport Manifest Merger, który może pomóc w znalezieniu odpowiedniego selektora w przyszłości.
Dzięki, ale zmiana elementu na nie pomogła. Aplikacja wciąż prosi o pozwolenie na dostęp do karty SC. Czy używam go we właściwym elemencie mojego pliku manifestu? –
Steffen
@sdeff: Nie mam pojęcia, czy twój 'com.helpshift' jest odpowiedni dla' selektora', ponieważ nie korzystam z tej biblioteki. Poza tym spójrz na jawny raport o fuzji (powinien być w 'build/output/apk /' IIRC) i zobacz, czy daje ci jakieś wskazówki. – CommonsWare
Właśnie usunąłem 'tools: selector =" com.helpshift "' i teraz wydaje się działać. To powinno być teraz w porządku? Btw. biblioteka ma czat w aplikacji, w którym użytkownicy mogą dołączać zrzuty ekranu. To już nie działa, ale jest lepsze niż 1-gwiazdkowe oceny użytkowników, którzy myślą, że chcę tylko uzyskać ich dane osobowe. :) – Steffen