Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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方法-缺少返回语句_Java_Android - Fatal编程技术网

Java方法-缺少返回语句

Java方法-缺少返回语句,java,android,Java,Android,所以我发现了很多关于这个问题的例子,但是解决这个问题的方法似乎有所不同。因此,我在这里寻找解决我的具体问题的方法 这是我的密码: package com.example.frederik.snapsule; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGrou

所以我发现了很多关于这个问题的例子,但是解决这个问题的方法似乎有所不同。因此,我在这里寻找解决我的具体问题的方法

这是我的密码:

package com.example.frederik.snapsule;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

public class MainActivity extends Activity {

    LoginButton login;
    TextView info;
    CallbackManager callbackManager;

    //Creating and initializing the feature(Code from Facebook install guide)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
    }

    @Override
    public View onCreateView(
            LayoutInflater inflater,
            ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.content_main, container, false);

        login = (LoginButton) view.findViewById(R.id.login_button);
        login.setReadPermissions("user_friends");

        // Callback registration
        login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
            }

            @Override
            public void onCancel() {
                // App code
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });
    }
}
package com.example.frederik.snapsule;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
导入com.facebook.CallbackManager;
导入com.facebook.facebook回调;
导入com.facebook.facebook异常;
导入com.facebook.FacebookSdk;
导入com.facebook.login.LoginResult;
导入com.facebook.login.widget.LoginButton;
公共类MainActivity扩展了活动{
登录按钮登录;
文本视图信息;
CallbackManager CallbackManager;
//创建和初始化该功能(Facebook安装指南中的代码)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
FacebookSdk.sdkinInitialize(getApplicationContext());//调用facebook功能
}
@凌驾
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
}
}

在最后的第二个“}”中,我得到了错误“Missing return statement”,但在我看来它似乎是正确的

修复此错误的方法总是相同的:当方法具有返回类型而不是所有代码路径返回该类型的值时,会发生错误。
onCreateView
方法应该返回一个
视图
,在您的情况下,它不会返回该视图。您正在将视图膨胀到
view
变量中,但从未返回该值

将代码更改为:

@Override
public View onCreateView(
        LayoutInflater inflater,
        ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.content_main, container, false);

    login = (LoginButton) view.findViewById(R.id.login_button);
    login.setReadPermissions("user_friends");

    // Callback registration
    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
        }

        @Override
        public void onCancel() {
            // App code
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
        }
    });

    return view; // <<< THIS IS IT
}
@覆盖
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});

返回视图;//添加返回语句,如下所述:

@Override
public View onCreateView(
        LayoutInflater inflater,
        ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.content_main, container, false);

    login = (LoginButton) view.findViewById(R.id.login_button);
    login.setReadPermissions("user_friends");

    // Callback registration
    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
        }

        @Override
        public void onCancel() {
            // App code
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
        }
    });
    return view;//view must be returned from this method
}
@覆盖
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
return view;//必须从此方法返回视图
}

首先添加此
返回视图;

  @Override
        public void onError(FacebookException exception) {
            // App code
        }
    });
    return view;//Add this 
}
设置内容视图在哪里


OncreateView
的返回类型为
View
,因此必须返回附加到活动的视图

如果要重写
onCreate
方法,则可能不需要重写
OnCreateView
方法。在
onCreate
方法中,可以使用
setContentView(R.layout.content\u main)

@覆盖
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
/**
*返回视图
*/
返回视图;
} 

它成功了!只是一个简单的附带问题,上面的@Override onCreateView给了我“方法不会推翻它的超类”的提示错误。我是否可以删除它,或者这会导致该部分代码无法运行?@Stenberg,
@Override
注释无效。它用于确保您正在重写超类方法或实现接口方法。如果您定义一个带有Override注释的新方法,您将得到一个编译时错误。它在重写方法时,使用注释可以避免一些错误,但如果需要,可以安全地删除注释。通常,在“重写”不属于超类的方法时,会出现所看到的错误。
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
        FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
    }
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.content_main, container, false);

    login = (LoginButton) view.findViewById(R.id.login_button);
    login.setReadPermissions("user_friends");

    // Callback registration
    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
        }

        @Override
        public void onCancel() {
            // App code
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
        }
    });
    /**
     *return view 
     */
    return view;
}