次のエラーが表示されます。
致命的な例外:メイン
ここに私のbuild.gradleがあります、私はAndroid部分でmultidexを有効にしました、
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
defaultConfig {
applicationId "com.mycompany.newlogin"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
useLibrary 'org.Apache.http.legacy'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:multidex:1.0.0'
compile 'com.google.guava:guava-jdk5:17.0'
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:design:23.0.1'
//compile 'org.Apache.httpcomponents:httpcore:4.4.1'
compile 'org.Apache.httpcomponents:httpclient:4.5'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.Apache.http.client:4.1.2'
}
私のマニフェストファイルは
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.mycompany.newlogin" >
<uses-permission Android:name="Android.permission.INTERNET"/>
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme"
Android:name="Android.support.multidex.MultiDexApplication">
<activity
Android:name=".MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
Android:name=".Login"
Android:label="@string/title_activity_login" >
</activity>
<activity
Android:name=".Register"
Android:label="@string/title_activity_register" >
</activity>
</application>
</manifest>
クラスを作成するには、App
という名前を付け、MultiDexApplication
から次のように拡張します。
import Android.support.multidex.MultiDexApplication;
public class App extends MultiDexApplication {
//you can leave this empty or override methods if you like so the thing is that you need to extend from MultiDexApplication
}
マニフェストにApp
をアプリケーション名としてこのように追加します
<application
Android:name=".App" // <<< this is the important line!
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name">
すべてを追加した後、クリーンビルドを作成し、今すぐ動作するはずです:)。
アプリケーションクラスのattachBaseContextメソッドをオーバーライドする
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}