Android Intent setType和addCategory方法导致构建错误

时间:2016-12-22 06:25:03

标签: java android android-intent build-error

我正在使用Website2Apk编译的应用程序,并进行逆向工程,以便在Android Studio中成为可行的项目。我从115个错误开始,现在我把它缩小到只有8个。其中六个构建错误与其中一个java文件中的setType和addCategory方法有关。我完全不知道可能导致这些错误的原因。

以下是我特定java文件的代码:

package com.valen.plazaone;

import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.os.Parcelable;
import android.util.Log;
import android.webkit.GeolocationPermissions.Callback;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebChromeClient.FileChooserParams;
import android.webkit.WebView;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.lang.Object;

/* renamed from: com.valen.plazaone.c */
class C0002c extends WebChromeClient {
    final /* synthetic */ MainActivity f11a;

    C0002c(MainActivity mainActivity) {
        this.f11a = mainActivity;
    }

    private File m5a() {
        return File.createTempFile("JPEG_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + "_", ".jpg", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
    }

    public void onGeolocationPermissionsShowPrompt(String str, Callback callback) {
        callback.invoke(str, true, false);
    }

    public void onProgressChanged(WebView webView, int i) {
        if (i < 100 && this.f11a.f4d.getVisibility() == 8) {
            this.f11a.f4d.setVisibility(0);
        }
        this.f11a.f4d.setProgress(i);
        if (i == 100) {
            this.f11a.f4d.setVisibility(8);
        }
    }

    public boolean onShowFileChooser(WebView webView, ValueCallback valueCallback, FileChooserParams fileChooserParams) {
        File a;
        Throwable e;
        Intent intent;
        Parcelable intent2;
        Parcelable[] parcelableArr;
        Object[] objArr;
        Intent intent3;
        if (this.f11a.f7h != null) {
            this.f11a.f7h.onReceiveValue(null);
        }
        this.f11a.f7h = valueCallback;
        Intent intent4 = new Intent("android.media.action.IMAGE_CAPTURE");
        if (intent4.resolveActivity(this.f11a.getApplicationContext().getPackageManager()) != null) {
            try {
                a = m5a();
                try {
                    intent4.putExtra("PhotoPath", this.f11a.f8i);
                } catch (IOException e2) {
                    e = e2;
                    Log.e(MainActivity.f0f, "Unable to create Image File", e);
                    if (a != null) {
                        this.f11a.f8i = "file:" + a.getAbsolutePath();
                        intent4.putExtra("output", Uri.fromFile(a));
                    } else {
                        intent4 = null;
                    }
                    intent = new Intent("android.media.action.VIDEO_CAPTURE");
                    intent2 = new Intent("android.intent.action.GET_CONTENT");
                    intent2.addCategory();
                    intent2.setType("*/*");
                    if (intent == null) {
                        parcelableArr = new Intent[]{intent, intent4};
                    } else if (intent4 != null) {
                        objArr = new Intent[]{intent4};
                    } else {
                        parcelableArr = new Intent[0];
                    }
                    intent3 = new Intent("android.intent.action.CHOOSER");
                    intent3.putExtra("android.intent.extra.INTENT", intent2);
                    intent3.putExtra("android.intent.extra.TITLE", "Upload Files");
                    intent3.putExtra("android.intent.extra.INITIAL_INTENTS", parcelableArr);
                    this.f11a.startActivityForResult(intent3, 1);
                    return true;
                }
            } catch (IOException e3) {
                e = e3;
                a = null;
                Log.e(MainActivity.f0f, "Unable to create Image File", e);
                if (a != null) {
                    intent4 = null;
                } else {
                    this.f11a.f8i = "file:" + a.getAbsolutePath();
                    intent4.putExtra("output", Uri.fromFile(a));
                }
                intent = new Intent("android.media.action.VIDEO_CAPTURE");
                intent2 = new Intent("android.intent.action.GET_CONTENT");
                intent2.addCategory("android.intent.category.OPENABLE");
                intent2.setType("*/*");
                if (intent == null) {
                    parcelableArr = new Intent[]{intent, intent4};
                } else if (intent4 != null) {
                    parcelableArr = new Intent[0];
                } else {
                    objArr = new Intent[]{intent4};
                }
                intent3 = new Intent("android.intent.action.CHOOSER");
                intent3.putExtra("android.intent.extra.INTENT", intent2);
                intent3.putExtra("android.intent.extra.TITLE", "Upload Files");
                intent3.putExtra("android.intent.extra.INITIAL_INTENTS", parcelableArr);
                this.f11a.startActivityForResult(intent3, 1);
                return true;
            }
            if (a != null) {
                this.f11a.f8i = "file:" + a.getAbsolutePath();
                intent4.putExtra("output", Uri.fromFile(a));
            } else {
                intent4 = null;
            }
        }
        intent = new Intent("android.media.action.VIDEO_CAPTURE");
        intent2 = new Intent("android.intent.action.GET_CONTENT");
        intent2.addCategory("android.intent.category.OPENABLE");
        intent2.setType("*/*");
        if (intent == null) {
            parcelableArr = new Intent[]{intent, intent4};
        } else if (intent4 != null) {
            objArr = new Intent[]{intent4};
        } else {
            parcelableArr = new Intent[0];
        }
        intent3 = new Intent("android.intent.action.CHOOSER");
        intent3.putExtra("android.intent.extra.INTENT", intent2);
        intent3.putExtra("android.intent.extra.TITLE", "Upload Files");
        intent3.putExtra("android.intent.extra.INITIAL_INTENTS", parcelableArr);
        this.f11a.startActivityForResult(intent3, 1);
        return true;
    }
}

此特定错误发生在所有intent2后面跟着setType或addCategory。有谁知道如何解决这个错误?

提前致谢。

1 个答案:

答案 0 :(得分:1)

从:

更改变量intent2的声明
Parcelable intent2;

为:

Intent intent2;

或者,如果由于某种原因你不能改变它,只要你在它上面调用一个方法就输入Intent

((Intent) intent2).addCategory();
((Intent) intent2).setType("*/*");