2016-10-11 5 views
1

Ich habe eine App, die GPS, Internet, FusedAPI und KSOAP verwendet. Wenn ich die App auf meinem Handy mit Android Studio debuggen, funktioniert die App gut. Wenn ich jedoch apk (signiert) erstelle, funktioniert die Aktivität, die sich mit Google Map, Fused API und GPS beschäftigt, nicht. Alles, was ich sehen kann, ist der Bildschirm flackert und die App kehrt zu der vorherigen Aktivität zurück.App funktioniert am Telefon während des Debuggens, funktioniert nicht, wenn APK installiert ist

Kann mir jemand sagen, was möglicherweise falsch ist.

build.gradle (Modul)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.1" 

    dexOptions { 
     javaMaxHeapSize "4g" 
    } 

    defaultConfig { 
     multiDexEnabled true 
     applicationId "online.hannuveda.transafe_rx" 
     minSdkVersion 11 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.0' 

    compile files('libs/ksoap2-android-assembly-2.4-jar-with-dependencies .jar') 
    compile 'com.google.android.gms:play-services:9.4.0' 
    compile 'com.google.maps.android:android-maps-utils:0.3+' 
    compile 'com.github.aakira:expandable-layout:[email protected]' 
} 

build.gradle (Projekt)

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

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.0' 

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

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

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

zeigen Sie uns Ihre build.gradle, proguard Einstellungen und die Aktivität, die auf unterzeichnet apk nicht funktioniert –

+0

gibt es 2 build.gradle, eins für Modul und eins für Projekt. Welches brauchst du ? –

+0

vielleicht ein Proguard Problem? – Opiatefuchs

Antwort

0

Da Sie die Google-Play-Dienste Abhängigkeit ('com.google.android.gms:play-services:9.4.0') verwenden, sollten Sie Ihre Anwendung erklären vom Typ MultidexApplication.

Sie haben gerade die Datei multiDexEnabled true zur Datei build.gradle auf App-Ebene hinzugefügt, die für eine Multidex-Konfiguration nicht ausreicht. Sie sollten auch Änderungen in Ihrem Manifest und Abhängigkeiten vornehmen. Wie auch immer, die Anweisungen sind die folgenden:

1- die multidex Abhängigkeit auf Ihre App-Ebene hinzufügen build.gradle:

compile 'com.android.support:multidex:1.0.1' 

2- die multidex in Ihrem defaultConfigs aktivieren in der App-Ebene build.gradle:

android { 

defaultConfig { 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
    } 
... 
} 

3- Definieren Sie eine neue Klasse MyApplication, die MultidexApplication erweitert, die als Einstiegspunkt für Ihre Anwendung dient.

public class MyApplication extends MultidexApplication 

4- Schließlich sollten Sie diese neue Klasse in AndroidManifest.xml erklären

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="your.package.name"> 

<application 
    android:name=".path-to.MyApplication"> 
    ... 
</application> 
</manifest> 
+0

Nichts muss zu "MyApplication" hinzugefügt werden, nur eine leere Klasse? –

+0

überschreiben Sie einfach die onCreate() -Methode. das ist es. –

+0

Funktioniert es jetzt? –

Verwandte Themen