所以我在这个问题上找到了很多例子,但修复它的方法似乎有所不同。所以我在这里寻找解决我特定问题的方法。
这是我的代码:
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
}
});
}
}
在倒数第二个&#34;}&#34;我收到错误&#34;缺少退货声明&#34;,但在我看来它似乎是正确的。
答案 0 :(得分:4)
OncreateView
的返回类型为View
,因此您必须返回附加到活动的视图。
如果您要覆盖onCreate
方法,则可能不需要覆盖OnCreateView
方法。在onCreate
方法中,您可以使用setContentView(R.layout.content_main)
。
@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;
}
答案 1 :(得分:1)
修复此错误的方法始终相同:当方法具有返回类型且并非所有代码路径都返回该类型的值时,会发生错误。 onCreateView
方法应该返回View
,在您的情况下它不会返回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
}
变量,但您永远不会返回该值。
将您的代码更改为:
svcutil.exe http://localhost:8990/Service1/ /out:Proxy.cs /config:App.config
答案 2 :(得分:1)
首先添加此return view;
@Override
public void onError(FacebookException exception) {
// App code
}
});
return view;//Add this
}
setContentView ?
在哪里 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
}
答案 3 :(得分:0)
添加如下所述的退货声明:
{{1}}