它说"方法openFileChooser(...)永远不会在本地使用",当我混淆时,proguard会删除它们,所以它不起作用。没有混淆,它没有任何问题。如何避免将proguard移除? 这是代码:
mWeb.setWebChromeClient(new WebChromeClient()
{
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
Main.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);
}
// for android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
Main.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), Main.FILECHOOSER_RESULTCODE );
}
});
我无法使用@Override,我认为这是他们的错误,我无法覆盖。 @KeepName也没有帮助。
答案 0 :(得分:0)
openFileChooser
不是公开的Android API,也从未成为SDK的一部分(这就是为什么你不能@Override它)。它是一个内部API,恰好适用于许多Android版本(但不是KitKat +)和Android设备,但就是这样。
答案 1 :(得分:0)
您可以告诉ProGuard使用
保留方法-keepclassmembers class * extends android.webkit.WebChromeClient {
public void openFileChooser(android.webkit.ValueCallback, java.lang.String, java.lang.String);
}