Ошибки компиляции на уровне API 28 - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь скомпилировать .apk из исходного кода на уровне API 28 (compileSdkVersion 28). Приложение компилируется нормально, но после установки вылетает. Мое приложение имеет Admob Ads в самом интерфейсе на разных страницах.

Вот мой уровень сборки build.gradle -

    buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

Вот мой уровень приложения build.gradle -

apply plugin: 'com.android.application'

android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 28

    defaultConfig {
        applicationId "****APP_ID****"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.android.gms:play-services-ads:17.2.1'
    implementation 'com.android.support:customtabs:27.0.2'
    implementation 'com.google.android.gms:play-services-maps:+'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation 'com.squareup.okhttp3:okhttp:3.9.1'
}
apply plugin: 'com.google.gms.google-services'

Вот рекламный код из моего AndroidManifest.xml -

 <application>
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="*****ADMOB-ID*****"/>
</application>

Вот рекламный код из моей MainActivity.java

import com.google.android.gms.ads.MobileAds;
public class MainActivity extends Activity {


      private LinearLayout linear1;
      private AdView adview1;
      @Override
      protected void onCreate(Bundle _savedInstanceState) {
         super.onCreate(_savedInstanceState);
         setContentView(R.layout.main);
         initialize(_savedInstanceState);
         initializeLogic();
         MobileAds.initialize(this, "*****ADMOB-ID*****");
     }

Я относительно новичок в кодировании Android. В чем может быть проблема?

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Вы должны заменить свой идентификатор приложения

 defaultConfig {
    applicationId "****APP_ID****"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
}

Вы должны добавить версию

  implementation 'com.google.android.gms:play-services-maps:+'

Вы должны добавить идентификатор приложения admob здесь

   <application>
<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="*****ADMOB-ID*****"/>
</application>

и вот

  MobileAds.initialize(this, "*****ADMOB-ID*****");

сначала попробуйте исправить эти ошибки

1 голос
/ 07 июня 2019

Вы должны отключить org.apache.http.legacy из своего приложения, поэтому добавьте следующие строки в манифест

 <uses-library
  android:name="org.apache.http.legacy"
  android:required="false" />

remove useLibrary 'org.apache.http.legacy' из gradle

Если вы используете какой-либо http URL в своем приложении, см. Это

...