2014-02-11 19 views
0

我試圖將亞馬遜的移動廣告,但保持運行到一個問題,即Android Studio中說:Android的工作室 - 亞馬遜移動廣告 - 不能實例類com.amazon.device.ads.AdLayout

Rendering Problems 
The following classes could not be instantiated: 
- com.amazon.device.ads.AdLayout(Open Class, Show Exception) 
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE 

當點擊「顯示異常」:

java.lang.NoClassDefFoundError: Could not initialize class android.os.Environment 
    at com.amazon.device.ads.DebugProperties.readDebugProperties(DebugProperties.java:78) 
    at com.amazon.device.ads.InternalAdRegistration.<init>(InternalAdRegistration.java:58) 
    at com.amazon.device.ads.InternalAdRegistration.<clinit>(InternalAdRegistration.java:54) 
    at com.amazon.device.ads.AdLayout.initialize(AdLayout.java:203) 
    at com.amazon.device.ads.AdLayout.initialize(AdLayout.java:183) 
    at com.amazon.device.ads.AdLayout.<init>(AdLayout.java:127) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:365) 
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:97) 
    at com.android.tools.idea.rendering.ProjectCallback.loadView(ProjectCallback.java:148) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) 
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:373) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332) 
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:542) 
    at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:535) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:939) 
    at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:535) 
    at com.android.tools.idea.rendering.RenderService.render(RenderService.java:577) 
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7$2.compute(AndroidDesignerEditorPanel.java:501) 
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7$2.compute(AndroidDesignerEditorPanel.java:494) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:950) 
    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7.run(AndroidDesignerEditorPanel.java:494) 
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 
    at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) 
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:237) 
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:297) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 

我試圖按照概述了https://developer.amazon.com/public/apis/earn/mobile-ads/docs/quick-start的步驟,但不包括他們爲Android工作室。

至於我的項目: - 我在我的項目的libs文件夾中有amazon-ads-5.1.153.jar,並將它添加爲一個庫。

  • 在項目結構中,我將庫添加到我的主模塊中,檢查導出。

  • 增加了行到我的清單:

    依賴{ 編譯文件(「庫/亞馬遜廣告 - :

  • 而且我的build.gradle中,我已經加入5.1.153.jar') }

而且從他們的例子中的一個視圖是複製粘貼:

<com.amazon.device.ads.AdLayout 
     android:id="@+id/adView" 
     android:layout_width="320dp" 
     android:layout_height="50dp" 
     Amazon:adSize="320x50"/> 
+1

可能重複http://stackoverflow.com/questions/16907504/the-following-classes-could-not-be-instantiated-com-facebook-widget-loginbutt – pyus13

+0

你看到什麼,當你點擊「顯示異常「鏈接? –

+0

我已添加它發佈的例外。至於Facebook的問題,我不明白我如何使用.isInEditMode(),因爲AdLayout是編譯代碼,我不能編輯它。 –

回答

0

如果你在XML佈局,那麼我知道發生了什麼。它應該顯示你的佈局是什麼樣的,它不能渲染它,因爲它不會加載更復雜的代碼... 嘗試模擬器和/或連接物理設備並以這種方式加載應用程序。這對我來說很有用。