2017-01-18 20 views
0

我露出@JavascriptInterface回调调试通过Android Studio中的应用程序时,它工作得很好网页视图,但是如果通过APK安装了该应用JavaScript的回调失败:的Android的WebView的JavaScript回调无法在APK没有Proguard的

“遗漏的类型错误:NativeApp.onProgress是不是一个函数”

我知道,不正确的Proguard的规则,可能会导致这个问题,但是在这种情况下,项目未使用ProGuard与调试出现问题,发布APKS。

如果我检查APK,方法是存在的。

public class MyServiceWithEmbeddedWebView {  
    ... 

    public createWebview() { 
    ... 
    webView.addJavascriptInterface(this, "NativeApp"); 
    ... 
    } 

    @JavascriptInterface 
    void onProgress(int loaded, int total) { 
     ... 
    } 

    ... 
} 

任何想法?

回答

0

@JavascriptInterface方法的范围更改为public解决了该问题。

所以此工程的APK安装:

@JavascriptInterface 
public void onProgress(int loaded, int total) { 
    // this is public 
} 

这并没有为APK安装工作,但是当被Android Studio调试器部署的工作就像一个冠军:

@JavascriptInterface 
void onProgress(int loaded, int total) { 
    // this is NOT public 
} 

如何讨厌!

相关问题