これはAndroid studio1.0.2で達成された私のエラーログです
02-03 13:05:23.831 8385-8385/com.******.*******E/AndroidRuntime﹕ FATAL EXCEPTION: main
Java.lang.NoClassDefFoundError: Android.support.v4.app.NavUtilsJB
at Android.support.v4.app.NavUtils$NavUtilsImplJB.getParentActivityName(NavUtils .Java:125)
at Android.support.v4.app.NavUtils.getParentActivityName(NavUtils.Java:302)
at Android.support.v4.app.NavUtils.getParentActivityName(NavUtils.Java:281)
at Android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.Java:142)
at Android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.Java:123)
at com..******.*******.****.ActivityWelcome.onCreate(ActivityWelcome.Java:33)
at Android.app.Activity.performCreate(Activity.Java:5104)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1080)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2144)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2230)
at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:137)
at Android.app.ActivityThread.main(ActivityThread.Java:5041)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:511)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
at dalvik.system.NativeStart.main(Native Method)
構成
buildToolsVersion "21.1.2"
Android SDK TOOLS"24.0.2"
multidex enabled
predexLibraries =false
incremental = true
jumboMode = false
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.Android.gms:play-services:6.5.87'
compile 'com.google.code.gson:gson:2.3'
compile 'com.Android.support:support-v4:21.0.3@aar'
compile 'com.Android.support:appcompat-v7:21.0.3@aar'
compile project(':ViewPagerIndicator')
compile('de.keyboardsurfer.Android.widget:crouton:1.8.4@aar') {
exclude group: 'com.google.Android', module: 'support-v4'
}
compile 'org.Java-websocket:Java-WebSocket:1.3.0'
}
このエラーを解決する方法は? gradlewcleanは役に立ちません。ビルドフォルダの削除も機能しません。 Android studioはコンパイル中にエラーを表示しません。
私はこの問題を抱えていて、解決策を見つけました-答えはRTFMです!手順は次のとおりです。 https://developer.Android.com/tools/building/multidex.html
マルチデキシングは新機能であるため、ロリポップ以前のデバイスと互換性のあるサポートライブラリが必要です。 Gradleファイルの依存関係に以下を追加する必要があります。
compile 'com.Android.support:multidex:1.0.0'
また、gradleファイルでmultidex出力を有効にします。
Android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
}
次に、multidexサポートアプリケーションをマニフェストに追加します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.Android.multidex.myapplication">
<application
...
Android:name="Android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
注:アプリがすでにApplicationクラスを拡張している場合は、attachBaseContext()メソッドをオーバーライドし、MultiDex.install(this)を呼び出してmultidexを有効にすることができます。詳細については、 MultiDexApplication
リファレンスドキュメントを参照してください。
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
MultiDex.install(this);
}
繰り返しますが、詳細については上記の手順を参照してください...
お役に立てれば
この問題のために何時間も立ち往生していましたが、最終的に解決策を得ました。
ステップ1:
dependencies {
compile 'com.Android.support:multidex:1.0.0'
}
ステップ2:
defaultConfig {
multiDexEnabled true
}
ステップ3:
public class AppController extends Application {
@Override
public void onCreate() {
super.onCreate();
MultiDex.install(this);
}
}
ハッピーコーディング!
次の解決策は私のために働いた:
追加 multiDexEnabled = true
あなたのdefault Config
コンパイルを追加com.Android.support:multidex:1.0.0
依存関係で
Application class extend MultiDexApplication
Application
の代わりに
この場合、「support-v4」ライブラリを19から24バージョンに更新したときに、このエラーが発生しました。
バージョン19にはNavUtilsJBクラスが含まれています:
ただし、バージョン24にはNavUtilsJBクラスが含まれていません。
この問題の解決策は、プロジェクト内にNavUtilsJBクラスを作成することでした。
package Android.support.v4.app;
import Android.app.Activity;
import Android.content.Intent;
import Android.content.pm.ActivityInfo;
class NavUtilsJB {
public static Intent getParentActivityIntent(Activity activity) {
return activity.getParentActivityIntent();
}
public static boolean shouldUpRecreateTask(Activity activity, Intent targetIntent) {
return activity.shouldUpRecreateTask(targetIntent);
}
public static void navigateUpTo(Activity activity, Intent upIntent) {
activity.navigateUpTo(upIntent);
}
public static String getParentActivityName(ActivityInfo info) {
return info.parentActivityName;
}
}