0

我正在使用Epson Wikitude的SDK的Android工作室。當我運行該應用程序時,它崩潰,我得到一個膨脹類錯誤。我已經看了其他幾個問題,但沒有一個是相同的,或者爲我的問題工作。膨脹類錯誤com.wikitude.architect.ArchitectView

/com.example.username.myapplication E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering/
    com.example.username.myapplication E/AndroidRuntime: FATAL EXCEPTION: main 
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: load_library[1091]: Library '/data/data/com.example.pmbi002.myapplication/libarchitect.so' 
not found 
at java.lang.Runtime.load(Runtime.java: 340) 
at java.lang.System.load(System.java: 524) 
at com.wikitude.architect.ArchitectView.e(Unknown Source) 
at com.wikitude.architect.ArchitectView.a(Unknown Source) 
at com.wikitude.architect.ArchitectView. <init> (Unknown Source) 
at com.wikitude.architect.ArchitectView. <init> (Unknown Source) 
at java.lang.reflect.Constructor.constructNative(Native Method)  
at java.lang.reflect.Constructor.newInstance(Constructor.java: 417)  
at android.view.LayoutInflater.createView(LayoutInflater.java: 586)  
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java: 680)  
at android.view.LayoutInflater.rInflate(LayoutInflater.java: 739)  
at android.view.LayoutInflater.inflate(LayoutInflater.java: 489)  
at android.view.LayoutInflater.inflate(LayoutInflater.java: 396)  
at android.view.LayoutInflater.inflate(LayoutInflater.java: 352)  
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java: 280)  
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java: 140)  
at com.example.pmbi002.myapplication.MainActivity.onCreate(MainActivity.java: 30)  
at android.app.Activity.performCreate(Activity.java: 4465)  
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1049)  
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 1920)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 1981)  
at android.app.ActivityThread.access$600(ActivityThread.java: 123)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1147)  
at android.os.Handler.dispatchMessage(Handler.java: 99)  
at android.os.Looper.loop(Looper.java: 137)  
at android.app.ActivityThread.main(ActivityThread.java: 4424)  
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: 784)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 551)  
at dalvik.system.NativeStart.main(Native Method)  

的build.gradle文件:

apply plugin: 'com.android.application' 

    android { 
     compileSdkVersion 15 
     buildToolsVersion '22.0.0' 
     defaultConfig { 
      applicationId "com.example.myusername.myapplication" 
      minSdkVersion 11 
      targetSdkVersion 15 
      versionCode 1 
      versionName "1.0" 
     } 
     buildTypes { 
      release { 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
     productFlavors {} 
    } 

    dependencies { 
     compile fileTree(include: ['*.jar'], dir: 'libs') 
     testCompile 'junit:junit:4.12' 
     compile 'com.android.support:appcompat-v4:22.0.0' 
     compile 'com.android.support:design:22.0.0' 
    } 
+0

錯誤代碼的重要行是「無法加載庫:load_library [1091]:庫'/data/data/com.example.pmbi002.myapplication/libarchitect.so'未找到」。這是應用程序無法加載我認爲應由您正在集成的sdk提供的本機庫。它出現的一個充氣錯誤的原因是因爲這是圖書館被加載時,所以它看起來像通貨膨脹失敗。 – Warrick

回答

2

的Android工作室預計本機庫是在罐內的lib文件夾,而他們在libs文件夾因此Android工作室找不到他們。

,你能做些什麼來解決這個問題是:

  • 使罐子的副本
  • 將它解壓縮解壓libs文件夾
  • 重命名庫到lib和壓縮lib文件夾
  • 重命名新.ZIP到的.jar

,並在您gradle這個文件中導入:

dependencies{ 
    compile fileTree(dir: 'libs', include: '*.jar’) 
} 

這爲我修好了。 也有人在wikitude論壇描述:http://www.wikitude.com/developer/developer-forum/-/message_boards/message/858620#_19_message_858823

編輯: 您也可以嘗試

  • 設置CLASSPATH 'com.android.tools.build:gradle:1.5.0' 到「融爲一體。 android.tools.build:gradle:1.3.0' 從項目的build.gradle
  • 確保compileSdkVersion,targetSdkVersion和com.android.support-V4是22或更低

,這不應成爲一個問題,因爲愛普生Moverio BT-200在Android上運行15

編輯: 這gradle這個設置解決了這個問題對我來說: /app/build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "com.wikitude.sdksamples" 
     minSdkVersion 9 
     targetSdkVersion 22 
    } 

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

dependencies { 
    compile 'com.android.support:support-v4:21.0.3' 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

項目的build.gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.3.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

正如我在評論中提到的,有一個Wikitude Epson SDK更新即將推出,應該擺脫android studio的複雜性。

+0

我遵循這些步驟,現在有一個wikitudesdk.jar文件和一個lib.jar文件在C:\ Users \ username \ AndroidStudioProjects \ MyApplication \ app \ libs但是當我嘗試同步項目它說它給了我以下錯誤。謝謝。錯誤:(22,0)不能爲null對象上調用方法編譯() Open File Mariah

+0

你在你的build.gradle 「{ flatDir { 迪爾斯 '庫' }} 庫 」? – Alex

+0

是的,我願意。我將複製上面的build.gradle文件。我也嘗試將wikitudesdk中的文件更改爲lib並重新打包該文件。這隻會讓我看到wikitudesdk.jar文件,但會導致相同的錯誤。 – Mariah

相關問題