mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-09 09:09:38 +02:00
Add AndroidSmackInitializer.initialize(Context)
This commit also changes the usage of the android.jar found in the androidBootClasspath gradle variable, because AndroidSmackInitializer.initialize(Context) pulls in org.minidns.dnsserverlookup.android21.AndroidUsingLinkProperties from minidns-android21, which has a @TargetApi annotation which is only available on Android SDK API level 16 or higher. Otherwhise we would get > Task :smack-android:compileJava FAILED /home/flo/.gradle/caches/modules-2/files-2.1/org.minidns/minidns-android21/0.3.0/13f273d095e51d701283062a25e867f3ff26d258/minidns-android21-0.3.0.jar(/org/minidns/dnsserverlookup/android21/AndroidUsingLinkProperties.class): warning: Cannot find annotation method 'value()' in type 'TargetApi': class file for android.annotation.TargetApi not found /home/flo/.gradle/caches/modules-2/files-2.1/org.minidns/minidns-android21/0.3.0/13f273d095e51d701283062a25e867f3ff26d258/minidns-android21-0.3.0.jar(/org/minidns/dnsserverlookup/android21/AndroidUsingLinkProperties.class): warning: Cannot find annotation method 'value()' in type 'TargetApi' error: warnings found and -Werror specified 1 error when compiling smack-android.
This commit is contained in:
parent
8fbe84ad4b
commit
ab30b0c921
3 changed files with 30 additions and 5 deletions
15
build.gradle
15
build.gradle
|
@ -428,7 +428,7 @@ subprojects {
|
|||
}
|
||||
}
|
||||
|
||||
configure (androidProjects) {
|
||||
configure (androidProjects + androidBootClasspathProjects) {
|
||||
apply plugin: 'ru.vyarus.animalsniffer'
|
||||
dependencies {
|
||||
signature "net.sf.androidscents.signature:android-api-level-${smackMinAndroidSdk}:2.3.1_r2@signature"
|
||||
|
@ -580,12 +580,21 @@ def getGitCommit() {
|
|||
}
|
||||
|
||||
def getAndroidRuntimeJar() {
|
||||
// We set a different Android API level compared to
|
||||
// smackMinAndroidSdk here. The runtime jar retrieved via this
|
||||
// method is, compared to earlier Smack versions, not used to
|
||||
// check for Android API compatibility. Instead it is used to for
|
||||
// the eclipse classpath, for javadoc and when compiling the pure
|
||||
// Android subprojects of Smack. Currently we require level 16
|
||||
// here, because of the @TargetApi annotation found in
|
||||
// AndroidUsingLinkProperties of minidns-android21.
|
||||
def androidApiLevel = 16
|
||||
def androidHome = getAndroidHome()
|
||||
def androidJar = new File("$androidHome/platforms/android-$smackMinAndroidSdk/android.jar")
|
||||
def androidJar = new File("$androidHome/platforms/android-${androidApiLevel}/android.jar")
|
||||
if (androidJar.isFile()) {
|
||||
return androidJar
|
||||
} else {
|
||||
throw new Exception("Can't find android.jar for $smackMinAndroidSdk API. Please install corresponding SDK platform package")
|
||||
throw new Exception("Can't find android.jar for $androidApiLevel API. Please install corresponding SDK platform package")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue