2016-09-22 25 views
0

我想从android工作室在我的android手机上运行365浏览器应用程序。我想看看浏览器应用程序是如何配置的,所以我克隆了来自github的365浏览器应用程序,并试图在android studio中运行它。但我得到致命异常:浏览器应用程序 - 关闭 - 致命异常

D/AndroidRuntime: Shutting down VM 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.mogoweb, PID: 18192 
        java.lang.RuntimeException: Unable to get provider org.chromium.chrome.browser.ChromeBrowserProvider: java.lang.ClassCastException: com.android.tools.fd.runtime.BootstrapApplication cannot be cast to org.chromium.base.BaseChromiumApplication 
         at android.app.ActivityThread.installProvider(ActivityThread.java:5177) 
         at android.app.ActivityThread.installContentProviders(ActivityThread.java:4769) 
         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709) 
         at android.app.ActivityThread.-wrap1(ActivityThread.java) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) 
         at android.os.Handler.dispatchMessage(Handler.java:102) 
         at android.os.Looper.loop(Looper.java:148) 
         at android.app.ActivityThread.main(ActivityThread.java:5443) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
        Caused by: java.lang.ClassCastException: com.android.tools.fd.runtime.BootstrapApplication cannot be cast to org.chromium.base.BaseChromiumApplication 
         at org.chromium.base.BaseChromiumApplication.initCommandLine(BaseChromiumApplication.java:116) 
         at org.chromium.chrome.browser.ChromeBrowserProvider.onCreate(ChromeBrowserProvider.java:268) 
         at android.content.ContentProvider.attachInfo(ContentProvider.java:1748) 
         at android.content.ContentProvider.attachInfo(ContentProvider.java:1723) 
         at android.app.ActivityThread.installProvider(ActivityThread.java:5174) 
         at android.app.ActivityThread.installContentProviders(ActivityThread.java:4769)  
         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709)  
         at android.app.ActivityThread.-wrap1(ActivityThread.java)  
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415)  
         at android.os.Handler.dispatchMessage(Handler.java:102)  
         at android.os.Looper.loop(Looper.java:148)  
         at android.app.ActivityThread.main(ActivityThread.java:5443)  
         at java.lang.reflect.Method.invoke(Native Method)  
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)  
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)  
I/Process: Sending signal. PID: 18192 SIG: 9 
Application terminated. 

我不确定哪部分代码或设置导致此问题。任何人都可以告诉我错误的哪一部分与问题实际相关,以及如何解决问题?

当我做项目的文件夹中搜索BaseChromiumApplication.java的,我得到ChromeFullScreenManager.java作为一个结果,而Java文件有以下几行:

import org.chromium.base.BaseChromiumApplication; 
import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener; 

谢谢!

回答

1
   Caused by: java.lang.ClassCastException: com.android.tools.fd.runtime.BootstrapApplication cannot be cast to org.chromium.base.BaseChromiumApplication 
        at org.chromium.base.BaseChromiumApplication.initCommandLine(BaseChromiumApplication.java:116) 
        at org.chromium.chrome.browser.ChromeBrowserProvider.onCreate(ChromeBrowserProvider.java:268) 

在BaseChromiumApplication.java

可变见线116,类型com.android.tools.fd.runtime.BootstrapApplication的对象不能被铸造到org.chromium.base.BaseChromiumApplication。 这些类型是无关的。对于铸造成功,对象类型必须已经从类型创建的,要它投进去,或者必须至少从类型这样的推导:

对象
Class_A,从对象
衍生Class_B,从Class_A
Class_C,源自Class_B

应类型的对象Class_C来创建派生出来,它可以在以后被完美地铸造成型Class_A,Class_B,Class_C或对象的一个​​对象。

+0

感谢您的回复。我在项目文件夹中搜索了BaseChromiumApplication.java,但没有找到具有该名称的任何文件。 – RDPD

+0

我得到的唯一结果是ChromeFullScreenManager.java文件,它有两个代码行,我只是将其添加到我的问题描述中。 – RDPD

+0

也许BaseChromiumApplication.java可以存储在JAR或AAR中。但坦率地说,我对Android编程知之甚少。 – fastman92