Tôi gặp sự cố với việc xác định hai tệp kê khai khác nhau cho hương vị của mình trong Android Studio. Đây là cấu trúc dự án hiện tại của tôi:Android Studio hai hương vị với các tệp kê khai khác nhau
Các AndroidManifest.xml
trong hương vị free
trông như thế này:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="se.example.package">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</manifest>
Các AndroidManifest.xml
trong hương vị main
không có người sử dụng-quyền, nhưng chứa phần còn lại của mã kê khai được chia sẻ giữa tất cả các hương vị.
Các AndroidManifest.xml
trong hương vị pro
trông như thế này:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="se.example.package">
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
</manifest>
build.gradle định nghĩa hai hương vị như
productFlavors {
free {
applicationId 'se.example.package.free'
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName '1.0'
}
pro {
minSdkVersion 14
applicationId 'se.example.package.pro'
targetSdkVersion 21
versionCode 2
versionName '1.1'
}
}
Kết quả mà tôi đang mong đợi là các hương vị khác nhau định nghĩa sử dụng khác nhau -quyền. Đây không phải là trường hợp. Kết quả hiện tại là cả hai hương vị chỉ xác định <uses-permission android:name="com.android.vending.CHECK_LICENSE" />
như được định nghĩa trong AndroidManifest.xml
trong hương vị chuyên nghiệp.
Tôi đã thử:
- sạch dự án
- Rebuild dự án
- Restart Android Studio
- Sync gradle
Nhưng không thành công. Tôi làm cách nào để sửa lỗi này? Bất kỳ trợ giúp được đánh giá cao.
EDIT 1
Tôi đã thay đổi vị trí của từng hương vị AndroidManifest.xml
tập tin từ mỗi res
thư mục để free
và pro
thư mục. Kết quả của việc này:
- Hương vị chuyên nghiệp cho thấy giấy phép được cho phép như mong đợi.
- hương vị miễn phí cho phép từ hai
AndroidManifest.xml
file, Giấy phép và quyền truy cập mạng (Nên chỉ mạng)
này cảm thấy như một vấn đề về cấu trúc của dự án. Phải làm gì với điều này?
EDIT 2
Tôi kéo các báo cáo hợp nhất như Commonsware gợi ý, đó là những báo cáo liên quan đến uses-permissions
miễn phí:
uses-permission#com.android.vending.CHECK_LICENSE
ADDED from qwknoteGIT:licencing-library:unspecified:26:5
android:name
ADDED from qwknoteGIT:licencing-library:unspecified:26:22
Pro:
uses-permission#com.android.vending.CHECK_LICENSE
MERGED from qwknoteGIT:licencing-library:unspecified:26:5
Tôi không chắc chắn chính xác mà bạn phải sử dụng (thou đó là một nhận xét, không phải là một câu trả lời) , nhưng bạn có thể có được những gì bạn muốn bằng cách sử dụng một số khai báo 'tools: node' http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC- công cụ: nút đánh dấu – Budius
"Kết quả hiện tại là cả hai hương vị chỉ def ines như được định nghĩa trong AndroidManifest.xml theo kiểu chuyên nghiệp. "- bạn đã xác định điều này như thế nào? –
CommonsWare
@CommonsWare Tôi đã cài đặt cả hai tính năng trên HTC one x và khi tôi kiểm tra quyền đối với mỗi người, cả hai đều nói "Kiểm soát giấy phép cho Google Play" (Được dịch từ điện thoại của tôi bằng ngôn ngữ Thụy Điển, có thể không được dịch chính xác Anh). Không ai trong số họ tuyên bố quyền truy cập internet. – Marcus