小编spa*_*ron的帖子

在Android上使用Facebook SDK会给"用户以不同的Facebook用户身份登录".错误

我正在将我的Facebook SDK升级到最新版本.下面的代码从Facebook自己的例子中逐行提升,可以在这里找到:https://developers.facebook.com/docs/facebook-login/android/v2.3

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;

import java.util.Arrays;

public class TestFb extends FragmentActivity{

    CallbackManager callbackManager;
    FacebookController fbController;

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    fbController = FacebookController.getInstance(this);

    FacebookSdk.sdkInitialize(getApplicationContext());
    final LoginManager loginManager = LoginManager.getInstance();

    callbackManager = CallbackManager.Factory.create();
    loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                String userId = loginResult.getAccessToken().getUserId();
                String token = loginResult.getAccessToken().getToken();
                Log.d("fb", "ID: " + userId + …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api

43
推荐指数
4
解决办法
2万
查看次数

在Android Studio 1.3.1中多次导入库项目会导致库消失

我有一个名为Common的库项目,我将其用于我的其他项目Consumer和Management共享的功能.消费者本身也是其他应用程序使用的库项目.

Common中的build.gradle文件包含其他项目使用的所有外部依赖项,如下所示:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.2.2'
    compile 'com.android.support:support-v4:22.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
}
Run Code Online (Sandbox Code Playgroud)

这将下载以下库:

在此输入图像描述

当我将Common添加到Consumer,Management或两者时,此列表保持不变.当我将Consumer添加到MyApp时,如下所示:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':consumer')
}
Run Code Online (Sandbox Code Playgroud)

有时候是这样的:

在此输入图像描述

支持库刚刚消失,在我的项目中造成了彻底的破坏.这在更新到Android Studio 1.3.1之前没有发生,所以我真的想知道问题可能是什么.

作为参考,这些是完整的gradle.build文件:

共同

apply plugin: 'com.android.library'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.2.2'
    compile 'com.android.support:support-v4:22.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
} …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio

17
推荐指数
1
解决办法
672
查看次数

是否可以阻止显示远程通知?

我想更好地控制向我的用户显示哪些通知,并有选择地使其中的一些静音.为了做到这一点,我UNNotificationServiceExtension在我的应用程序中实现了一个,即使我的应用程序没有运行,它也允许我拦截和修改通知.但问题是,即使我不打电话didReceive(_:withContentHandler:),系统仍会在大约30秒后显示远程通知.我怎样才能防止这种情况发生?

apple-push-notifications ios swift

10
推荐指数
3
解决办法
1734
查看次数

比较图像以查找重复项

我在一个文件夹中有一些(38000)图片/视频文件.其中大约40%是重复的,我试图摆脱它.我的问题是,如何判断2个文件是否相同?到目前为止,我尝试使用文件的SHA1但事实证明许多重复文件有不同的哈希值.这是我使用的代码:

public static String getHash(File doc) {
    MessageDigest md = null;
    try {
        md = MessageDigest.getInstance("SHA1");
        FileInputStream inStream = new FileInputStream(doc);
        DigestInputStream dis = new DigestInputStream(inStream, md);
        BufferedInputStream bis = new BufferedInputStream(dis);
        while (true) {
            int b = bis.read();
            if (b == -1)
                break;
        }

        inStream.close();
        dis.close();
        bis.close();
    } catch (NoSuchAlgorithmException | IOException e) {
        e.printStackTrace();
    }

    BigInteger bi = new BigInteger(md.digest());

    return bi.toString(16);
}
Run Code Online (Sandbox Code Playgroud)

我能以任何方式修改吗?或者我必须使用不同的方法吗?

java sha1 image-processing

6
推荐指数
2
解决办法
8142
查看次数

在JavaFX中管理ComboBox项

我正在使用Text对象填充ComboBox.使用Text对象而不是Strings允许我添加一个id值,我可以在我的程序中使用它,并在我决定国际化UI时使用.无论如何,这就是我正在做的事情:主要课程:

public class MainApp extends Application {

private Stage primaryStage;

@Override
public void start(Stage primaryStage) {
    this.primaryStage = primaryStage;
    try {
        AnchorPane paneMain = (AnchorPane) FXMLLoader.load(getClass().getResource("Test.fxml"));
        Scene scene = new Scene(paneMain);
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
public static void main(String[] args) {
    launch(args);
}
Run Code Online (Sandbox Code Playgroud)

}

控制器:

public class Test implements Initializable{

@FXML
private AnchorPane anchorPane;
@FXML
private ComboBox<Text> comboTime; 
private Text days;
private Text hours;
private Text minutes;
private int timeMultiplier; 

public Test(){
    days = …
Run Code Online (Sandbox Code Playgroud)

java combobox javafx

6
推荐指数
1
解决办法
1万
查看次数

Android:如何从URL播放mp4视频?

我正在尝试播放视频,但没有运气,所以我正在测试一些简单的代码,看看问题是什么.以下不起作用,我不确定为什么:

表现:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <uses-permission
    android:name="android.permission.INTERNET" />
    <uses-permission
        android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.videotest.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
Run Code Online (Sandbox Code Playgroud)

主要活动:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        VideoView vid = (VideoView) findViewById(R.id.videoView1);
        Uri vidUri = Uri.parse("http://somewebsite.com/somevideo.mp4");
        vid.setVideoURI(vidUri);
        vid.setMediaController(new MediaController(this));        
        vid.start();
     }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true; …
Run Code Online (Sandbox Code Playgroud)

java xml video android

5
推荐指数
2
解决办法
3万
查看次数

Android:如何以编程方式仅舍入位图的顶角?

我目前正在使用此代码:

@Override
public Bitmap transform(Bitmap source) {
    Bitmap result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(result);

    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, source.getWidth(),source.getHeight());
    final RectF rectF = new RectF(rect);

    final float scale = context.getResources().getDisplayMetrics().density;
    final float roundDp = 10 * scale;

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawRoundRect(rectF, roundDp, roundDp, paint);

    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(source, rect, rect, paint);
    source.recycle();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但问题是这种方法只允许我一次修改所有4个角.我怎么只绕图像的底角?

java android bitmap

5
推荐指数
1
解决办法
6953
查看次数

Java collect函数给出了循环推理错误

键入以下代码时,我在groupingBy函数的参数上出现"循环推理"错误:

Map<String, User> mapByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail));
Run Code Online (Sandbox Code Playgroud)

我发现这令人困惑,因为以下不会导致任何问题:

users.stream().collect(Collectors.groupingBy(User::getEmail));
Run Code Online (Sandbox Code Playgroud)

这两个都没有:

List<User> listByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail)).values().stream().reduce(null, (a,b)-> a=b);
Run Code Online (Sandbox Code Playgroud)

所以问题是,什么是循环推理,我该如何避免呢?

编辑感谢您的回答.经过进一步研究后,我发现我需要通过以下方式减少我的结果:

 Map<String, User> mapByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail, Collectors.reducing(new User(),(a,b)-> a=b)));
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

4
推荐指数
1
解决办法
2950
查看次数

MyBatis中的一对多关系

我正在尝试使用MyBatis在我的数据模型中映射一对多的关系.这基于以下类:

class Team{
    String mId;
    String mName;
    List<Player> mPlayers;
}

class Player{
    String mId;
    String mName;
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个返回匹配列表的查询,每个匹配都填充了与该匹配对应的标记.

<select id="getTeams" resultType="Team" resultMap="TeamMap">
    SELECT id, name, players.id as player_id, players.name as player_name
    FROM teams
    JOIN players ON teams.id = players.team_id
</select>


<resultMap type="Team" id="TeamMap">
    <id property="mId" column="id"/>
    <result property="mName" column="name"/>

    <collection property="mTags" javaType="List" ofType="Player">
        <id property="player_id" column="mId"/>
        <result property="player_name" column="mName"/>
    </collection>

</resultMap>
Run Code Online (Sandbox Code Playgroud)

但我遇到的问题是每个Team对象只填充一个Player.如何更改此项以确保每个团队都包含属于它的所有玩家?

java mysql mybatis

4
推荐指数
2
解决办法
9088
查看次数

java.io.IOException:服务器返回HTTP响应代码:405表示URL

我有一个在线servlet,我正在尝试联系以进行一些基本的测试.这是servlet代码:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class index extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public index() {
        super();
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        long time1 = System.currentTimeMillis();
        long time2 = time1 + 10000;
        out.println(time1);
        long i = 400000000l;
            while (System.currentTimeMillis() < time2) {
                i++;
            }
            out.print(time2);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试使用以下代码从服务器获取信息:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import …
Run Code Online (Sandbox Code Playgroud)

java servlets ios

3
推荐指数
1
解决办法
1万
查看次数

如何设置 JSP 页面的 URL?

在 servlet 中,我会做

@WebServlet("/myURL")
Run Code Online (Sandbox Code Playgroud)

但是我将如何使用 JSP 页面做到这一点?

java jsp servlets

2
推荐指数
1
解决办法
6997
查看次数

如何解决“二进制运算符'=='不能应用于两个'Foo'操作数”的问题?

我创建了一个Foo类,如下所示:

class Foo{

    var randomeVar:String?

    func saySomething(){
        print("Something")
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在要比较foo的不同实例,如下所示:

let foo1 = Foo()
let foo2 = Foo()
if foo1 == foo2{
    print("Cool")
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,投诉人抱怨“二进制运算符'=='不能应用于两个'Foo'操作数”。有什么问题,我该如何解决?

ios swift swift3

2
推荐指数
1
解决办法
958
查看次数

无法与远程计算机建立RMI连接

我似乎无法使用RMI连接2台机器.为了确保我的代码没有问题,我复制了维基百科(http://en.wikipedia.org/wiki/Java_remote_method_invocation)中的简单示例,并编辑了代码以打印出一个简单的int.

我尝试提供所有权限并关闭所有防火墙,但仍然出现此错误:

java.rmi.ConnectException: Connection refused to host 55.229.xx.xxx; nested 
exception is:java.net.ConnectException: Connection timed out: connect
Run Code Online (Sandbox Code Playgroud)

在过去的3天里我一直在努力做到这一点,我似乎仍然无法克服基本的配置问题.

java rmi distributed-computing amazon-web-services

1
推荐指数
1
解决办法
3423
查看次数