首页 文章

没有在DexPathList上找到类

提问于
浏览
0

嗨,我的应用程序有问题 . 我正在使用Android Studio 0.8.4

我收到此错误:

java.lang.RuntimeException:无法实例化应用程序com.twittstr.TwittstrApplication:java.lang.ClassNotFoundException:在路径上找不到类“com.twittstr.TwittstrApplication”:DexPathList [[zip file“/ data / app / com .twittstr-1.apk“],nativeLibraryDirectories = [/ data / app-lib / com.twittstr-1,/ system / lib]]在Android.app的android.app.LoadedApk.makeApplication(LoadedApk.java:516) .ActivityThread.handleBindApplication(ActivityThread.java:4317)在Android.app.Handler的android.app.ActivityThread.access $ 1500(ActivityThread.java:135)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256) android.app.Looper.loop(Looper.java:136)中的.dispatchMessage(Handler.java:102)位于android.app.ActivityThread.main(ActivityThread.java:5017)的java.lang.reflect.Method.invokeNative(本地方法)在com.android.internal.os的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)的java.lang.reflect.Method.invoke(Method.java:515) . ZygoteInit.main(ZygoteInit .dava:595)at dalvik.system.NativeStart.main(Native Method)引起:java.lang.ClassNotFoundException:在路径上找不到类“com.twittstr.TwittstrApplication”:DexPathList [[zip file“/ data / app / com.twittstr-1.apk“],nativeLibraryDirectories = [/ data / app-lib / com.twittstr-1,/ system / lib]]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)at java.lang.ClassLoader.loadClass(ClassLoader.java:497)位于android.app.LoadedApk的android.app.Instrumentation.newApplication(Instrumentation.java:975)java.lang.ClassLoader.loadClass(ClassLoader.java:457) .makeApplication(LoadedApk.java:511)位于android.app.ActivityThread.access $ 1500(ActivityThread.java:135)android.app.ActivityThread $ H.handleMessage的android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317) (ActivityThread.java:1256)android.app.Handler.dispatchMessage(Handler.java:102)位于android.app.ActivityThread.main的android.os.Looper.loop(Looper.java:136)处(ActivityThread.java: 5017)在java.lan在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)的java.lang.reflect.Method.invoke(Method.java:515)中的g.reflect.Method.invokeNative(Native Method)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)at dalvik.system.NativeStart.main(Native Method)

我知道stackoverflow上已经有类似的问题了 . 但是,建议的答案是在eclipse中进行清理,或者在清单中有人使用了错误的包名 . 我的应用程序找不到其中一个问题 .

我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.twittstr">


  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="20" />


  <uses-permission android:name="android.permission.INTERNET"/>

  <application android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@drawable/ic_launcher"
      android:theme="@style/Theme.Twittstr"
      android:name="com.twittstr.TwittstrApplication"
      >

    <activity android:name="com.twittstr.login.LoginActivity"
        android:theme="@style/Theme.Twittstr.Login"
        >

      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>

    </activity>

  </application>

</manifest>

我已经包含了其他位置的其他项目(不在gradle项目路径中 . 我的settings.gradle:

include':app'项目(':dagger') . projectDir = new File('〜/ android / dagger')

我的build.gradle文件:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

apply plugin: 'crashlytics'

android {
  compileSdkVersion 20
  buildToolsVersion "20.0.0"

  defaultConfig {
    applicationId "com.twittstr"
    minSdkVersion 14
    targetSdkVersion 20
    versionCode 1
    versionName "1.0"
  }
  buildTypes {
    release {
      runProguard false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

  packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'LICENSE'
    exclude 'NOTICE'
  }
}

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
 // wearApp project(':wear')
  compile 'com.google.android.gms:play-services-wearable:+'

  // Annotation Processing
  compile 'com.squareup.dagger:dagger:1.2.2'
  apt 'com.squareup.dagger:dagger-compiler:1.2.2'


  compile project (':dagger')


  // ActionItem
  compile 'com.tundem.actionitembadge:library:1.1.0@aar'
  compile 'com.balysv:material-menu:1.0.0'


  // compile 'com.github.japgolly.android:svg-android:2.0.6'


  // Twitter
  compile 'org.twitter4j:twitter4j-core:4.0.2'
}

可以正确地重新获得家属 .

可能是Android Studio问题 . 更可能是我在清单中有一个非常愚蠢的错误,但我看不到它 . 有什么建议?

1 回答

  • 0

    第一:在你的 class TwittstrApplication 中,添加: @EApplication .

    然后在你的清单中,改变:

    android:name="com.twittstr.TwittstrApplication"
    

    android:name="com.twittstr.TwittstrApplication_"
    

    清洁和建设 . 它对我有用 .

相关问题