как добавить Paho-MQTT в студию Android

Я пытаюсь использовать Paho-MQTT в студии Android. Я ссылался на эту ссылку и должен добавить следующее для градации файлов

ссылка требует добавления следующего:

repositories {
  maven {
    url "https://repo.eclipse.org/content/repositories/paho-releases/"
  }
}

dependencies {
  compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
    exclude module: 'support-v4'
  }
}

в тексте не было указано, какой файл gradle я использую, используя «gradle-proj или gradle-app», поэтому я попробовал оба, и в любом случае я получил такие ошибки, как

Error:(14, 0) Could not find method compile() for arguments [org.eclipse.paho:org.eclipse.paho.android.service:1.0.2, build_9fu4g5nmegp97bvhjazm7s8o8$_run_closure1$_closure3$_closure5@6dff2815] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
<a href="openFile:C:\Users\aba\AndroidStudioProjects\Test-PahoMQTT-1\build.gradle">Open File</a>

пожалуйста, дайте мне знать, какой файл gradle я должен использовать «proj или app»? и как правильно добавить предыдущий код в gradle?

приложение build.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "26.0.0"
defaultConfig {
    applicationId "com.example.alten.test_pahomqtt_1"
    minSdkVersion 15
    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.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'

//compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
//compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'
//provided 'com.google.android.things:androidthings:0.2-devpreview'
//provided 'com.google.android.things:androidthings:0.1-devpreview'

//compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') { exclude module: 'support-v4' }
compile files('libs/org.eclipse.paho.android.service-1.0.2.jar')
compile files('libs/org.eclipse.paho.client.mqttv3-1.0.2.jar')
}

проект build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()

    maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" }
    maven { url "https://repo.eclipse.org/content/repositories/paho-releases/" }
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()

    maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" }
    maven { url "https://repo.eclipse.org/content/repositories/paho-releases/" }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

текущая ошибка

введите описание изображения здесь


person user2121    schedule 18.07.2017    source источник
comment
у тебя получилось?   -  person anoop4real    schedule 27.03.2018


Ответы (1)


В вашем приложении вы должны добавить:

dependencies {
    . . .
    compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
    compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
}

В вашем проекте:

 buildscript {
     repositories {
         . . .
         maven {
             url "https://repo.eclipse.org/content/repositories/paho-releases/"
         }
     }
 }

не забудьте добавить службу в манифест под тегом application:

<service
     android:name="org.eclipse.paho.android.service.MqttService"
     android:exported="false" />

Эти две строки

compile files('libs/org.eclipse.paho.android.service-1.0.2.jar')
compile files('libs/org.eclipse.paho.client.mqttv3-1.0.2.jar')

не будет работать, пока папка libs не будет содержать эти банки. Если вы хотите придерживаться этого подхода (копирование банок), вы можете найти их здесь:

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.android.service/ https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.client.mqttv3/

person RadekJ    schedule 18.07.2017
comment
я изменил сообщение, то, что я добавил в build.gradle (приложение), точно такое же, как вы опубликовали, НО я добавил расширение .jar, когда я использую ту же команду без .jari не работает. кроме того, пожалуйста, взгляните на прикрепленный снимок экрана, он показывает, что я не могу использовать MqttService..может быть, потому что мой собственный пакет..пожалуйста, дайте мне знать, как исправить эти ошибки - person user2121; 18.07.2017
comment
как я вижу, вы пытаетесь добавить банки из папки libs compile files('libs/org.eclipse.paho.android.service-1.0.2.jar'), поэтому он будет искать файл org.eclipse.paho.android.service-1.0.2.jar' в вашей папке libs. Код, который я разместил, будет искать этот файл в репозиториях (определено в проекте gradle) и должен найти его в одном из них maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" }, который мы добавили вручную. - person RadekJ; 18.07.2017
comment
для обеих зависимостей, которые вы опубликовали, я получаю следующее: Ошибка: (40, 13) Не удалось разрешить: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0 - person user2121; 18.07.2017
comment
обновил мой ответ: в proj gradle попробуйте url https://repo.eclipse.org/content/repositories/paho-releases/ вместо url "https://repo.eclipse.org/content/repositories/paho-snapshots - person RadekJ; 18.07.2017
comment
если бы вы проверили модификацию, которую я добавил в пост, вы бы поняли, что я уже пробовал url, которую вы предоставили.. в любом случае, это не работает - person user2121; 18.07.2017
comment
и какую ошибку вы получите, если раскомментируете эти две строки //compile 'org.eclipse.paho: ... и удалите compile files('libs/org.eclipse.paho ... строки? - person RadekJ; 18.07.2017
comment
это: Ошибка: (40, 13) Не удалось разрешить: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0 - person user2121; 18.07.2017