Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Android清单中解析活动_Java_Android_Constructor - Fatal编程技术网

Java 无法在Android清单中解析活动

Java 无法在Android清单中解析活动,java,android,constructor,Java,Android,Constructor,我的应用程序不断崩溃,我想这是因为我没有默认的构造函数。至少,这是Android清单文件中引用的内容。我尝试添加一个构造函数,但当我只添加一个空构造函数时,例如,“public LoaderImageView(){}”,它将无法识别它并给我错误。我将复制java和android代码 请帮忙,谢谢 爪哇: 包com.example.imageviewloader import android.content.Context; import android.graphics.drawable.Dra

我的应用程序不断崩溃,我想这是因为我没有默认的构造函数。至少,这是Android清单文件中引用的内容。我尝试添加一个构造函数,但当我只添加一个空构造函数时,例如,“public LoaderImageView(){}”,它将无法识别它并给我错误。我将复制java和android代码

请帮忙,谢谢

爪哇: 包com.example.imageviewloader

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

import java.io.IOException;
import java.net.MalformedURLException;

/**
* Created by Owner on 8/12/2017.
*/

public class LoaderImageView extends LinearLayout {

private static final int COMPLETE = 0;
private static final int FAILED = 1;


private Context mContext;
private Drawable mDrawable;
private ProgressBar mSpinner;
private ImageView mImage;


public LoaderImageView(final Context context, final AttributeSet attrSet) {
    super(context, attrSet);
    final String url = attrSet.getAttributeValue(null, "image");
    if(url != null){
        instantiate(context, url);
    } else {
        instantiate(context, null);
    }
}

private void instantiate(final Context context, final String imageUrl) {
    mContext = context;

    mImage = new ImageView(mContext);
    mImage.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
 LayoutParams.WRAP_CONTENT));

    mSpinner = new ProgressBar(mContext);
    mSpinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
LayoutParams.WRAP_CONTENT));

    mSpinner.setIndeterminate(true);

    addView(mSpinner);
    addView(mImage);

    if(imageUrl != null){
        setImageDrawable(imageUrl);
    }
}

public void setImageDrawable(final String imageUrl) {
    mDrawable = null;
    mSpinner.setVisibility(View.VISIBLE);
    mImage.setVisibility(View.GONE);
    new Thread(){
        public void run() {
            try {
                mDrawable = getDrawableFromUrl(imageUrl);
                imageLoadedHandler.sendEmptyMessage(COMPLETE);
            } catch (MalformedURLException e) {
                imageLoadedHandler.sendEmptyMessage(FAILED);
            } catch (IOException e) {
                imageLoadedHandler.sendEmptyMessage(FAILED);
            }
        }
    }.start();
}

private final Handler imageLoadedHandler = new Handler (new 
Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
        switch (msg.what) {
            case COMPLETE:
                mImage.setImageDrawable(mDrawable);
                mImage.setVisibility(View.VISIBLE);
                mSpinner.setVisibility(View.GONE);
                break;
            case FAILED:
            default:
                // Could change image here to a 'failed' image
                // otherwise will just keep on spinning
                break;
        }
        return true;
    }
});

private static Drawable getDrawableFromUrl(final String url) throws 
IOException, MalformedURLException {
    return Drawable.createFromStream(((java.io.InputStream)new 
java.net.URL(url).getContent()), "name");
}

}
舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.imageviewloader">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".LoaderImageView">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>


您应该扩展活动或AppCompatActivity或活动的子体。您不能简单地扩展LinearLayout并假设它是一个活动。

在POST中包含您的崩溃日志您需要应用程序的视图,并且您的启动程序java文件没有扩展任何视图(AppCompatActivity),因此,创建一个扩展AppCompatActivity的活动,然后运行您的应用程序。这应该是一个注释而不是答案。那么答案应该是什么?向他解释如何使用一个示例,注释是为了给出一个想法,以便用户可以使用它,答案是给出他/她缺少什么以及如何解决错误的完整想法。