我的主应用程序有minSdk="14"
,Facebook SDK for Android v.4.16.1有minSdk="15"
的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.dmitriev_m.sample_android"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.facebook.android:facebook-android-sdk:4.16.1'
compile 'com.android.support:appcompat-v7:25.1.0'
}
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.dmitriev_m.sample_android">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="25"
tools:overrideLibrary="com.facebook, android.support.customtabs" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
以下是documentation关于合并AndroidManifest.xml
个文件的内容:
默认情况下,导入具有minSdkVersion值的库时 高于主清单文件,发生错误和库 无法导入。使合并工具忽略此冲突和 导入库,同时保持应用程序的minSdkVersion值更低, 将overrideLibrary属性添加到标记。属性 value可以是一个或多个库包名(以逗号分隔), 指示可以覆盖主要清单的库 的minSdkVersion
但是我的合并清单看起来像应用程序覆盖了Facebook SDK的清单文件(最小SDK为14):
运行此应用程序是否安全?我的意思是当Facebook SDK从Android API 15调用方法时,应用程序应该崩溃,不应该崩溃吗?
答案 0 :(得分:1)
如果库调用API 15函数且设备只是API 14,它将崩溃。如果设备是API15或更高版本,它仍然可以工作。
但是,在这种情况下,我不担心。 14是Anroid 3.x.只有极少数3.x设备制作 - Android平板电脑直到4.0发布后才起飞。使用的3.x型号的百分比小于所有设备的0.1%。如果他们不工作,支持他们真的值得花时间和精力吗?老实说,我只是将你的minsdk提高到15或更高。 (将其提高到19只会消除全球市场的10%,这将严重偏向亚洲,非洲和南美洲的低收入国家。如果您的主要目标是美国和欧盟,则可能不值得支持这一点)。