2017-06-08 3 views
1

Ich habe gerade ein Projekt in mein Android Studio importiert und testete die Anwendung auf der neuesten Version von Android SDK dh v7, aber wenn ich versuche, die Anwendung auf alten Geräten zu testen, funktioniert die Anwendung nicht, da die Anwendung aus Authentifizierungsaktivität besteht Das funktioniert erfolgreich auf v7, aber nicht auf alten Android-Geräten.Wie Ignoranz von Abhängigkeiten in Android vermeiden?

org.apache.httpcomponents: httpmime: 4.5.1'

Ich bemerkte, dass über Abhängigkeit ignoriert zu werden. Ich weiß, dass nach API 23 diese Abhängigkeit abgeschrieben wird. Gibt es irgendeine Methode, um Ignoranz von Gradle zu vermeiden? Da meine gesamte Anwendung auf HTTP-Komponenten basiert.

Gradle Datei Anwendungsbereich ist:

-Code Aktualisiert

apply plugin: 'com.android.application' 

android { 

    compileSdkVersion 23 
    buildToolsVersion "25.0.0" 
    useLibrary 'org.apache.http.legacy' 


    defaultConfig { 
     applicationId "com.creative.nerdzprocollegemanager" 
     minSdkVersion 14 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     debug { 
      debuggable true 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/values-fr'] } } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'org.apache.httpcomponents:httpmime:4.5.1' 
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 

} 

Die Anwendungsfunktion ist:

@Override 
protected String doInBackground(Void...params) { 
    byte[] result; 
    String resultString = ""; 
    HttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost(url); 
    try { 
    ArrayList <NameValuePair> nameValuePairs = new ArrayList < >(); 
    for (String key: postParams.keySet()) { 
    nameValuePairs.add(new BasicNameValuePair(key, postParams.get(key))); 
    } 
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 
    HttpResponse response = httpClient.execute(httpPost); 
    StatusLine statusLine = response.getStatusLine(); 

    if (statusLine.getStatusCode() == HttpURLConnection.HTTP_OK) { 
    errorMessage = "ok"; 
    result = EntityUtils.toByteArray(response.getEntity()); 
    resultString = new String(result, "UTF-8"); 
    } 
    } catch (UnsupportedEncodingException e) { 
    errorMessage = "Encoding is not supported"; 
    } catch (Exception e) { 
    errorMessage = "An error occurred"; 
    } 
    return resultString; 
} 

@Override 
protected void onPostExecute(String s) { 
    if (errorMessage.equals("ok")) { 
    sourceActivity.requestFinished(s, requestTag); 
    } else 
    sourceActivity.requestFailed(errorMessage, requestTag); 
} 
} 

Gibt es eine Methode Unkenntnis der Abhängigkeiten von gradle zu vermeiden? Oder sollte ich eine Alternative zu httpclient verwenden? Bitte schlagen Sie mir eine Lösung vor, da ich nicht viel Erfahrung mit Android habe.

+0

Fügen Sie diese in Ihrer Anwendung build.gradle android Tag useLibrary 'org.apache.http.legacy' lilke android { compileSdkVersion 23 buildToolsVersion "23.0.0" useLibrary 'org.apache.http.legacy' . .. } –

Antwort

0

diese Zeile in Ihrer gradle Datei in Seite hinzufügen android

android{ 
... 
useLibrary 'org.apache.http.legacy' 
... 
} 

Edit: ersetzen auch

compile group: 'cz.msebera.android' , name: 'httpclient', version:         
     '4.4.1.1' 

mit

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 

oder

compile 'org.apache.httpcomponents:httpclient:4.5.1' 
+0

immer noch Problem ist da! Anwendung funktioniert immer noch nicht auf alten APIs http://prntscr.com/fh93zz –

+0

Überprüfen Sie die Bearbeitung und sehen, ob das Problem gelöst ist – nitinkumarp

+0

Kein Problem ist immer noch da! –

Verwandte Themen