Reputation: 31
App is working fine on Android Studio, but downloaded from Play Store crashes on the first time, then start working fine.
I tried to solve it, but without success (changed minSDK to 21, enabled Multidex).
Build Gradle App:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.0"
defaultConfig {
applicationId "com.--------.app"
minSdkVersion 21 //Change my min Sdk
targetSdkVersion 29
multiDexEnabled true // Enable mutlidex
versionCode 10
versionName "1.4.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
implementation 'com.google.android.gms:play-services-ads:18.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha07'
implementation 'com.android.support:multidex:1.0.3' //Multi-dex lib
testImplementation 'junit:junit:4.13-beta-3'
androidTestImplementation 'androidx.test:runner:1.3.0-alpha01'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha01'
}
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at android.app.ActivityThread.handleReceiver (ActivityThread.java:3285)
Application Class:
public class MainActivity extends AppCompatActivity implements View.OnClickListener { //Application Class Here
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base); //OverRide Multidex
MultiDex.install(this);
}
private Button rate,ad,contact; //i don't have Application
//Using custom Class is this
// right way
@Override
protected void onCreate(Bundle savedInstanceState)
//My Code
Crash Report After Exe Below Code:
[Crash Report After Exe Below Code][1]
Logcat
[Logcat][2]
Upvotes: 2
Views: 706
Reputation: 6140
In Your App class
UPDATE
Create New Java File with Any name E.g. AppClass.java
in Your new AppClass.java file extend MultiDexApplication.
So your class will look like below.
public class AppClass extends MultiDexApplication {
}
Now override attachBaseContext
method.
So finally your complete class will look like below.
public class AppClass extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Now you have to Declare your AppClass in AndroidManifest.xml file in application tag.
<application
----------
----------
----------
android:name=".AppClass"
----------
---------->
</application>
Upvotes: 0
Reputation: 1825
In some cases, this could be a MultiDex issue. Try this in your application class. That is in App.java which extends Application:
public class App extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Register App.java file in manifest.xml in the application tag. Check below code.
<application
android:name=".App"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
</application>
Upvotes: 1