2015-05-29 45 views
0

我是Android Studio的新手。我正在開發一個我想將文檔上傳到Evernote的應用程序。我正在使用Evernote SDK。在Android Studio中添加Evernote庫作爲模塊在解組時會給出「類未找到」

我從Evernote網站下載了Evernote Android SDK和示例應用程序,並使用Evernote提供的說明。我構建了示例應用程序並通過Android Studio運行,然後它可以正常工作,但是當我將該庫作爲模塊添加到項目中並進行構建時,它是成功的。

當我跑步時指以下錯誤顯示:

05-28 18:47:04.614: E/Parcel(968): Class not found when unmarshalling: com.evernote.client.android.EvernoteSession$EvernoteService 
05-28 18:47:04.614: E/Parcel(968): java.lang.ClassNotFoundException: com.evernote.client.android.EvernoteSession$EvernoteService 
05-28 18:47:04.614: E/Parcel(968): at java.lang.Class.classForName(Native Method) 
05-28 18:47:04.614: E/Parcel(968): at java.lang.Class.forName(Class.java:251) 
05-28 18:47:04.614: E/Parcel(968): at java.lang.Class.forName(Class.java:216) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Parcel.readParcelableCreator(Parcel.java:2133) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Parcel.readParcelable(Parcel.java:2097) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Parcel.readValue(Parcel.java:2013) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Parcel.readArrayMapInternal(Parcel.java:2314) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Bundle.unparcel(Bundle.java:249) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Bundle.getString(Bundle.java:1118) 
05-28 18:47:04.614: E/Parcel(968): at android.content.Intent.getStringExtra(Intent.java:5285) 
05-28 18:47:04.614: E/Parcel(968): at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1586) 
05-28 18:47:04.614: E/Parcel(968): at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1167) 
05-28 18:47:04.614: E/Parcel(968): at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4496) 
05-28 18:47:04.614: E/Parcel(968): at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4378) 
05-28 18:47:04.614: E/Parcel(968): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:161) 
05-28 18:47:04.614: E/Parcel(968): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3002) 
05-28 18:47:04.614: E/Parcel(968): at android.os.Binder.execTransact(Binder.java:404) 
05-28 18:47:04.614: E/Parcel(968): at dalvik.system.NativeStart.run(Native Method) 
05-28 18:47:04.614: E/Parcel(968): Caused by: java.lang.NoClassDefFoundError: com/evernote/client/android/EvernoteSession$EvernoteService 
05-28 18:47:04.614: E/Parcel(968): ... 18 more 
05-28 18:47:04.614: E/Parcel(968): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.evernote.client.android.EvernoteSession$EvernoteService" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
05-28 18:47:04.614: E/Parcel(968): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
05-28 18:47:04.614: E/Parcel(968): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
05-28 18:47:04.614: E/Parcel(968): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
05-28 18:47:04.614: E/Parcel(968): ... 18 more 

我是針對基於以下點在我的項目庫。

包含了Android圖書館項目在您的IntelliJ工作區

  1. 右鍵點擊你的項目,然後選擇打開模塊屬性
  2. 選擇頂部的加號圖標(添加),然後選擇導入模塊
  3. 選擇庫目錄並單擊確定。
  4. 單擊下一步,下一步,下一步,下一步
  5. 單擊完成
  6. 點擊你的項目,並選擇TEH依賴標籤
  7. 點擊底部的加號圖標(添加),並選擇3模塊依賴
  8. 選擇庫,然後單擊OK

以下是gradle這個文件:

圖書館項目的build.gradle文件:文件夾裏面的庫 應用插件: 'com.android.library'

android { 
    compileSdkVersion 17 
    buildToolsVersion "19.1.0" 

    defaultConfig { 
     minSdkVersion 5 
     targetSdkVersion 16 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile files('libs/evernote-api-1.25.jar') 
    compile files('libs/scribe-1.3.1.jar') 
} 

的build.gradle我的項目:這是我的項目模塊 應用插件:「com.android.application」

android { 
    compileSdkVersion 21 
    buildToolsVersion "22.0.0" 

    defaultConfig { 
     applicationId "com.xerox.xeroxmobilelink.clouddemo" 
     minSdkVersion 16 
     targetSdkVersion 21 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile project(':library') 
    compile project(':accountsManager') 
    compile project(':cloudAccountsLogin') 
    compile project(':cloudFolderChooser') 
    compile project(':cloudDocumentUploader') 
    compile 'com.android.support:support-v4:21.0.3' 
    compile 'com.android.support:appcompat-v7:21.0.3' 
} 
+0

如何整合庫?你可以顯示你的build.grade文件嗎? – vRallev

+0

由於您是高級代表用戶,因此對我來說可能很有幫助,指出'
'問題的標籤幾乎不需要格式化問題 - 它們使帖子更加容易地改進/編輯。只需在普通的換行符文本中編寫代碼,並使用雙向回車來創建段落。謝謝!值得引用的材料(例如手冊)和代碼格式的引用材料也值得使用,因爲它們受益於monospacing(例如您的Gradle配置)。 – halfer

回答

1

我在模塊清單文件中添加了庫的活動,然後它將工作。 以下是標籤內清單文件中的聲明

<activity 
     android:name="com.evernote.client.android.EvernoteOAuthActivity" 
     android:configChanges="orientation|keyboardHidden"/>