2015-01-15 17 views
9

Đối với ứng dụng của tôi rằng tôi đang phát triển với mới nhất của Android Studio Tôi đang sử dụng phụ thuộc này bên trong nó là tập tin gradle:Android Gradle Manifest Sáp nhập: Ghi đè 'sử dụng-phép' thuộc tính đến từ một thư viện

dependencies { 
    compile 'com.android.support:support-v4:21.0.+' 
    compile 'com.helpshift:android-aar:3.7.1' 
} 

thư viện com.helpshift:android-aar:3.7.1 cần sự cho phép sau đây cho một tính năng mà tôi không sử dụng trong ứng dụng chính của tôi:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Như đã trình bày herehere tôi có thể ghi đè lên các thuộc tính từ các khai báo hoạt động của thư viện đã nhập XML.

Nhưng tôi cũng có thể ghi đè tệp kê khai Khai báo XML như được đề cập uses-permission?

Tôi đã thử một cái gì đó như thế này trong manifest chính của tôi, nhưng nó đã không làm việc:

<permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    tools:node="remove" 
    tools:selector="com.helpshift"> 
</permission> 

Cũng thay đổi các yếu tố <permission>-<uses-permission> không giúp đỡ. Ứng dụng vẫn yêu cầu quyền truy cập vào thẻ SC.

My chính AndroidManifest.xml trông như thế này bây giờ:

<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 
     ... 

Cập nhật: Câu trả lời đề nghị của @CommonsWare đang làm việc.

Chỉ là số tools:selector="com.helpshift" của tôi không chính xác. Tôi bỏ nó ra bởi vì tôi chắc rằng tôi sẽ không cần sự cho phép đó trong bất kỳ thư viện nào khác trong một thời gian.

Ông cũng đã nộp feature request để cải thiện Báo cáo kết hợp tệp kê khai có thể giúp tìm bộ chọn phù hợp trong tương lai.

Trả lời

9

Nó sẽ là một yếu tố <uses-permission> mà bạn sẽ remove, không phải là một yếu tố <permission>.

Và lưu ý rằng thư viện có thể gặp sự cố nếu ứng dụng của bạn không giữ quyền này.

+0

Cảm ơn nhưng việc thay đổi thành phần thành đã không hữu ích. Ứng dụng vẫn yêu cầu quyền truy cập vào thẻ SC. Tôi có đang sử dụng nó trong phần tử chính xác của tệp kê khai của mình không? – Steffen

+0

@sdeff: Tôi không biết liệu 'com.helpshift' của bạn có phù hợp với' selector' hay không, vì tôi không sử dụng thư viện này. Ngoài ra, hãy xem báo cáo sáp nhập tệp kê khai (phải ở trong 'build/output/apk /' IIRC) và xem liệu nó có cung cấp cho bạn bất kỳ manh mối nào không. – CommonsWare

+1

Tôi vừa xóa hoàn toàn 'công cụ: selector =" com.helpshift "' và bây giờ nó có vẻ đang hoạt động. Điều đó sẽ ổn thôi? Btw. thư viện có trò chuyện trong ứng dụng nơi người dùng có thể đính kèm ảnh chụp màn hình. Điều đó hiện không hoạt động nữa nhưng nó tốt hơn xếp hạng 1 sao của những người dùng nghĩ rằng tôi chỉ muốn lấy dữ liệu cá nhân của họ. :) – Steffen

Các vấn đề liên quan