小编Mar*_*ini的帖子

IntelliJ + git +子模块 - >你把.iml放在哪里?

请注意:不使用Gradle/Maven.

场景:

一个典型的Android应用程序,需要Facebook SDK,你有几个选择:

  1. 在你的磁盘中的某个位置克隆SDK,将/facebook-android-sdk/facebook(/myapp/facebook例如,库的Android src代码所在的位置)的内容复制到你的例子中,在IntelliJ中导入一个模块,将它指向这个新/myapp/facebook路径并在一天内调用它.IntelliJ将创建一个facebook.iml(并将修改您的project.properties和其他.idea相关文件以考虑这个新模块).然后,您可以将此新模块添加到存储库,并将其视为任何其他库.
  2. 在您的应用程序目录中克隆SDK,例如:/myapp/facebook-android-sdk/*并在IntelliJ中导入模块,将其指向此新路径并将其视为另一个git存储库(您甚至可以从Facebook获取新的更改,尽管有时这可能会破坏模块) .
  3. 创建一个指向Facebook SDK的github仓库的git子模块,在IntelliJ中导入指向子模块的模块,很可能是正确导入的/myapp/facebook-android-sdk/*.

在继续之前,让我们看看每个方面的一些特定方面:

  1. PROS:这是一个火灾,忘记和干净的方法,你甚至可以随意更改SDK,因为你只导入了库,你有源代码.缺点:保持最新的乏味.每次有新的FacebookSDK更新时,您必须手动更新外部克隆,复制SDK和/或重新添加模块(并确保工作正常!).如果你有局部变化,事情就会变得更难.
  2. PROS:比#1更容易更新,但你不能真正提交更改(除非你创建了一个fork),因为我们没有对FacebookSDK的写入权限.缺点:你的facebook.iml东西在git中总是" "的,因为你不能提交它(因为它是一个不同的回购).
  3. PROS:在技​​术方面最干净的方法,你通过使用子模块做"正确的事",让git指向正确的存储库并正确地对待它.缺点:子模块是......如果不小心处理,那就很精细了,但是,除了你的子模块是你可以控制的分支之外,它与#2规则一致,你不能改变FacebookSDK并提交它,所以这就离开了你facebook.iml当你将模块添加到你的项目时,IntelliJ创建的问题,在子模块目录周围漫游......这引出了我的问题......

如果您因为没有权限(例如FacebookSDK)而无法提交子模块,那么您可以在哪里(以及如何)放置IntelliJ放入每个新模块中的module.iml(本例中为facebook.iml),以便您的其他模块用户可以克隆你的仓库,做git submodule initgit submodule update,并没有得到典型的IntelliJ"问题加载模块"的错误.上述问题的解决方案在于每个新用户克隆,不得不对"从项目中删除facebook"说"是",然后再次添加/导入模块(依赖项,如果他们尊重名称,则为其他人正确保存)模块,这样很好).

git android intellij-idea git-submodules

6
推荐指数
0
解决办法
1948
查看次数

C#.NET Winforms:是否可以覆盖Label.Autosize?

我不喜欢Label控件的AutoSize属性。我有一个自定义标签,在其他内容之间绘制了一个圆角的边框。我将a放置AutoSize = false在构造函数中,但是,当我将其放置在设计模式下时,该属性始终为True。

我已经成功地超越了其他属性,但是这一属性却使我无视了。如果这是“通过MS设计”,是否有人有线索?

如果有人感兴趣,这是我的Label的完整源代码。

using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace Dentactil.UI.WinControls
{
    [DefaultProperty("TextString")]
    [DefaultEvent("TextClick")]
    public partial class RoundedLabel : UserControl
    {
        private static readonly Color DEFAULT_BORDER_COLOR = Color.FromArgb( 132, 100, 161 );
        private const float DEFAULT_BORDER_WIDTH = 2.0F;
        private const int DEFAULT_ROUNDED_WIDTH = 16;
        private const int DEFAULT_ROUNDED_HEIGHT = 12;

        private Color mBorderColor = DEFAULT_BORDER_COLOR;
        private float mBorderWidth = DEFAULT_BORDER_WIDTH;
        private int mRoundedWidth = DEFAULT_ROUNDED_WIDTH;
        private int mRoundedHeight = DEFAULT_ROUNDED_HEIGHT;

        public event …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

通过SSL(https)的简单HttpWebRequest在C#下找不到404

我想对一个位于安全连接上的PHP编写的Web服务进行POST.以下代码只是我经过几个小时的试验和错误后编写的测试控制台应用程序.基本上,我发现了一些使用HttpWebRequest的不同方法,但它们都是相同的.

在Web浏览器上使用"http"测试我的URI,应该返回一个空白的html(带有空体).这在浏览器和我的代码中都可以正常工作.

我继续尝试http://www.google.com,我得到谷歌...(正如预期的那样).当我将URI从http更改为https时出现问题.在Web浏览器上使用"https"测试我的URI ,返回相同的空白html(这是预期的).但是当我在代码中尝试相同的URI时,我得到了404 Not Found.

这是简单的代码(和URI)(取消注释第二个尝试https):

try
{
  string lcUrl = "http://servicios.mensario.com/enviomasivo/apip/";
  //string lcUrl = "https://servicios.mensario.com/enviomasivo/apip/";

  // *** Establish the request
  HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);

  // *** Set properties
  loHttp.Timeout = 10000;     // 10 secs
  loHttp.Method = "POST"; // I added this for testing, but using GET or commenting this out doesn't change anything.

  // Retrieve request info headers ******** HERE I GET THE EXCEPTION **********
  HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();

  // All this …
Run Code Online (Sandbox Code Playgroud)

ssl httpwebrequest .net-3.5

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

Visual Studio 2008键盘快捷方式显示成员?

在VS2008中显示当前文件中的成员的最佳方法是什么?

场景:用Ctrl+ 打开文件,D然后输入"> of"和SomeFilename,然后按Enter,最后进入新打开的文件.现在,如果您不记得方法的名称或成员的名称,您可能会尝试逐步搜索(Ctrl+ I)和/或各种搜索选项,但我想知道的是如何查看/打开/滚动/等等会员组合框(或类似的替代方案).

有任何想法吗?

编辑:我知道导航栏(默认情况下它是"打开"的c#),这正是我想要做的,不用鼠标去那里.有一个键盘快捷键:Window.MovetoNavigationBar这是迄今为止我找到的唯一选项.但是你需要按Tab来从类型移动到成员.

keyboard-shortcuts visual-studio-2008

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

在Windows 7下启动System.Diagnostics.Process时出现问题

我正在尝试从.NET 3.51启动一个应用程序(操作系统,我的应用程序和我要启动的应用程序都是32位).

启动Process的代码用于其他应用程序,但是有一个令我们头疼的问题.如果我们在应用程序的图标上"双击"它,它会按预期工作,这意味着它可以作为计算机中的应用程序正常工作.直接双击.exe也可以.

操作系统是Windows 7 32位(家庭和/或专业).

我们的.NET应用程序使用x86编译以避免出现问题.

启动"Processes"的代码位于我们制作的DLL(也是32位)内,基本上它是一个简单的DLL,它包含一些"通用代码",我们在整个代码中使用的常用方法,函数和内容.其中一种方法如下所示:

public static bool FireUpProcess( Process process, string path, bool enableRaisingEvents,
        ProcessWindowStyle windowStyle, string arguments )
    {
        if ( process != null )
        {
            try
            {
                process.StartInfo.FileName = @path;
                if ( arguments != null )
                {
                    if ( arguments != String.Empty )
                    {
                        process.StartInfo.Arguments = arguments;
                    }
                }
                process.StartInfo.WindowStyle = windowStyle;
                process.EnableRaisingEvents = enableRaisingEvents;
                process.Start();
            }
            catch
            {
                try
                {
                    process.Kill();
                }
                catch ( InvalidOperationException )
                {
                } // The process is not …
Run Code Online (Sandbox Code Playgroud)

.net c# system.diagnostics windows-7

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

Kindle Fire在某些时候改变屏幕分辨率......

免责声明:这是一个奇怪的问题,只发生在Kindle Fire(到目前为止).

涉及的技术:Android SDK,Eclipse,LibGDX.

我有一个与LibGDX一起运行的相对简单的应用程序.LibGDX的工作方式是通过一个OpenGL线程调用Create()(一次),然后尽可能多地调用Render()(这样你就可以进行渲染......).

因此,当您初始化Device时,将调用"Create()"方法,然后在初始化OpenGL表面时(所有这些都自动发生),您的Render()开始被调用.

如果OpenGL上下文丢失,被破坏等,则LibGDX会调用Resize(width,height)方法.

至今.超好的.

现在我遇到了一个Kindle Fire的奇怪问题,其中的事情看起来像几个像素或"切".Kindle Fire在屏幕底部有一个"软键"(20像素),你无法隐藏或跳过,这是"好的",因为该设备没有物理按钮.你应该触摸这个软条,并获得一个更大的酒吧回去,回家等.根据亚马逊,这个酒吧无法删除.(并非100%明确,但没有人找到方法 - 这没有违反亚马逊规则).我见过的唯一的应用程序删除了亚马逊视频播放器,仅适用于从亚马逊云端流式传输的视频.正如您所看到的,似乎没有办法"永久地"隐藏该栏.

因此,如果条形图存在,则您的实际屏幕状态不是硬件分辨率1024x600(横向),而是1024x580.所以我在我的方法中添加了一些日志来查看发生了什么,并对此感到惊讶......(记住create(),render()和resize()方法):

12-23 15:17:04.119: I/myapp(19921): SCREEN HEIGHT AT CREATE(): 600
[snip other unrelated log stuff]
12-23 15:17:04.673: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 600
[snip other unrelated log stuff]
12-23 15:17:04.705: I/myapp(19921): MyApp - Resize() Called.
12-23 15:17:04.705: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 580
Run Code Online (Sandbox Code Playgroud)

所以屏幕已被K​​indle Fire"调整大小","在某些时候".

有没有人遇到这样的事情?

这是一个截图(注意顶部的黑条,这不是我添加的!).请原谅我模糊图像,但这是客户的项目,我不能"透露"任何东西.

在此输入图像描述

有趣的部分开始有时,酒吧不会在那里,应用程序将看起来像下一个(再次,模糊的sry).请注意顶部栏不在那里......

在此输入图像描述

仔细检查两个镜头后,您可以判断底部(应该是相同的)不是.那种有点奇怪的事情.

有任何想法吗?

资产最初打包为1024x600,但我们已经改变了(现在是580)并且假设视口现在是1024x580但是我想知道是否有人找到了更好的方法来处理这个废话?:)

注意:我们在清单中有android:theme ="@ android:style/Theme.NoTitleBar.Fullscreen".什么都不做. …

android libgdx kindle-fire

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

函数返回的闭包和 Rust 本地生成的闭包有什么区别?

以下代码显示了两个闭包:c1、c2。c1由函数返回,c2在本地生成。c1 无法发送到线程。为什么?

fn gen_closure() -> Box<dyn Fn(&str)> {
    return Box::new(|s: &str| {
        println!("gen_closure: {}", s);
    });
}

fn main() {
    let c1 = gen_closure();
    let c2 = Box::new(|s: &str| {
        println!("main_closure: {}", s);
    });

    /* `dyn for<'r> Fn(&'r str)` cannot be sent between threads safely
    the trait `Send` is not implemented for `dyn for<'r> Fn(&'r str)`
    required because of the requirements on the impl of `Send` for `Unique<dyn for<'r> Fn(&'r str)>`
    required because it appears within the type `[closure@src/main.rs:13:24: 15:6]` …
Run Code Online (Sandbox Code Playgroud)

closures rust

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

为什么Android不打印堆栈跟踪?

即使显式写e.printStackTrace()它也不会打印到控制台,为什么?

java android

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

从Android设备发送HTTPS/HTTP POST时出现UnknownHostException

我试图创建一个HTTP POST到谷歌服务器,以获得对ClientLogin验证(如描述在这里).这篇文章的源代码并不是一个真正的谜,我在这里找到了它.(我确定我的帖子有效,因为使用CURL我获得了Auth)

该方法非常简单,我相应地修改了值,但是,当我执行以下行时,我得到以下异常:

HttpResponse response = client.execute(post);

06-17 13:44:05.645: WARN/System.err(768): java.net.UnknownHostException: www.google.com
06-17 13:44:05.645: WARN/System.err(768):     at java.net.InetAddress.lookupHostByName(InetAddress.java:506)
06-17 13:44:05.645: WARN/System.err(768):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
06-17 13:44:05.645: WARN/System.err(768):     at java.net.InetAddress.getAllByName(InetAddress.java:256)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
06-17 13:44:05.645: WARN/System.err(768):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
etc.
etc.
etc…
Run Code Online (Sandbox Code Playgroud)

(省略了无关的日志).

尝试了各种代码组合(在谷歌和这里找到),不同的URL(有或没有HTTPS),常规HTTP等等.我决定尝试以下方法:

try {
       InetAddress address = InetAddress.getByName("http://www.google.com");
} catch (UnknownHostException …
Run Code Online (Sandbox Code Playgroud)

android exception http http-post

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

何时使用getString()

我想知道getString().我可以看到这样做getString(R.string.some_text)有效.也getResources().getString(R.string.connection_error)有效.所以我的问题是为什么我们应该使用getString或什么时候?谢谢!

string android getstring

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