小编Tar*_*w45的帖子

Android Studio:从搜索结果中排除构建文件夹中的文件

我有一个Android Studio项目,其中我有多个模块,每个模块都取决于共享模块.让我们说这个共享模块有一个xml文件调用sample.xml

当我用Navigate - > Files ...搜索打开文件并输入"sample.xml"时,我会得到

  1. 分享/ src目录/主/ RES /价值/ sample.xml中
  2. ModuleA /建造/中间体/分解-ARR /.../ RES /值/ sample.xml中
  3. ModuleB /建造/中间体/分解-ARR /.../ RES /值/ sample.xml中
  4. ModuleC /建造/中间体/分解-ARR /.../ RES /值/ sample.xml中
  5. ModuleD/build/intermediates/explosion-arr /.../ res/values/sample.xml ...

由于生成了build文件夹中的文件,我们不应该编辑它们,因此我没有理由将它们包含在搜索结果中.无论如何我可以排除它们吗?

android-studio

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

ITMS 9000:您上传的二进制文件无效

当我遇到这个问题时,我的第一个想法是搜索Stack Overflow解决方案.我做了搜索,发现了几个主题.但是,与我的问题不同,那些海报从错误中得到了一些线索,例如:

您上传的二进制文件无效.签名无效,或者未使用Apple提交的证书签名

或者这一个:

您上传的二进制文件无效.该文件不是有效的zip文件

或者这个

您上传的二进制文件无效.Info.plist文件中的密钥CFBundleVersion必须包含比以前上载的版本更高的版本.

但对我来说,我什么也没得到,它只是说ERROR ITMS-9000:"你上传的二进制文件无效"

在此输入图像描述

我尝试通过以下尝试解决此问题,所有这些都失败了

  • 在模拟器上测试确保应用程序正常运行...检查!
  • 在设备上测试(iPhone 5S,iOS 7和iPhone 4s iOS 6)以确保应用程序正常运行...检查!
  • 清洁和建造......完成!
  • 确保我使用的是分发配置文件(不是ad hoc,dev)...检查!
  • 重做证书和配置文件的整个过程......完成!
  • 检查我的代码签名身份...检查!
  • 检查包ID,有匹配(Apple Developer中的Xcode == App ID = iTunes Connect中的App)...检查!
  • App ID区分大小写检查....检查!(小写,com.companyname.productname)
  • 删除项目中的目标,然后创建一个新目标(我有一个项目,多个目标)......完成!
  • 删除方案,然后创建一个新的...完成!
  • 检查图标大小,检查加载图像大小,检查每英寸像素...检查!
  • 检查Localizable.strings是否错误...检查!
  • 删除构建foler ...完成!
  • 重启Xcode,重启电脑......完成!
  • 连接到另一个wifi路由器...完成!
  • 从我的同事Macbook提交......完成!
  • 创建新的App ID,新证书,新的配置文件并更新iTunes Connect Bundle ID ...完成!
  • 休息一小时,再试一次......完成!

我真的不知道我做错了什么.我从iOS 4开始提交应用程序,数百次更新.但从来没有碰到这样的事情.事实上,我刚刚更新了另一个应用程序,它与这个共享相同的代码库,完全没有问题.

有没有办法可以收集有关Xcode告诉我的"无效二进制文件"的更多信息?或者还有什么我应该尝试的吗?

对于每个发现此主题的人(2014年7月18日),也许你的最佳镜头可能是,休息几个小时(或一天),然后再试一次.

- - 最后更新 - -

原来是Apple Server问题

  • 说,我有一个名为"Sample App"的应用程序
  • 此应用的应用id是com.tartw45.sampleapp
  • 此应用程序使用名为"Simple App App Store Distribution Profile"的App Store Distribution配置文件
  • 回到上周五(2014年7月18日),一切似乎都没问题,没有任何错误指示,但我无法发布应用程序,如上所述
  • 今天(2014年7月21日),我上周再次尝试使用存档,仍然没有成功. …

itunesconnect ios xcode5

41
推荐指数
4
解决办法
9237
查看次数

从Android Studio中的外部项目链接模块

我正在将我的所有项目从Eclipse迁移到Android Studio(1.0.2,只是昨天下载)但是有外部模块的问题.

在Eclipse中,我有这样的工作空间

在此输入图像描述

所有活动,片段,模型和类都在"核心"项目中.Core项目需要一些库来运作(例如Google Play服务,Facebook或Twitter),而App 1,App 2,App 3等只是标签应用程序.这些应用程序不包含除图标,配置文件,加载图像等外的任何内容.

我设法将"Core"应用程序及其所有依赖项导入Android Studio作为新项目.当我构建核心时,我得到0个错误和0个警告

在此输入图像描述

然后,我创建新的项目调用"测试"并通过从该问题中选择的答案链接"核心"项目

如何跨多个项目共享单个库源

测试项目的setting.gradle

include ':Test'
include '..:..:AppyCore:Core'
Run Code Online (Sandbox Code Playgroud)

测试项目的build.gradle

dependencies {
    compile 'com.android.support:support-v4:+'
    compile project('..:..:AppyCore:Core')
}
Run Code Online (Sandbox Code Playgroud)

但是,当我重建项目时,我收到了这个错误

Error:(41, 0) Project with path ':SlidingMenu' could not be found in project '..:..:AppyCore:Core'
Run Code Online (Sandbox Code Playgroud)

当我双击错误消息时,IDE会显示Core项目的build.gradle并突出显示文件的依赖项部分,如下所示

在此输入图像描述

似乎当我尝试构建"测试"项目时,它无法找到"核心"项目的所有依赖项.你知道怎么解决这个问题吗?

注意

  • 我相信"核心"项目设置已经是正确的,因为我确实创建了"测试2"应用程序并将"核心"项目导入同一个根目录,同一个项目.它没有任何问题.但这不是一个选项,因为我实际上有大约20多个白标应用程序.如果每个应用程序都拥有自己的"核心",那么逐个更新将非常困难.
  • 我认为我包含的目录是正确的,否则,我会得到这个错误

    "错误:找不到名称'default'的配置."

(我试图故意放错目录并得到同样的错误)

android android-studio android-gradle-plugin

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

获取哈希键并转换为字符串ruby

示例哈希

hash = {:key => ["val1", "val2]}
Run Code Online (Sandbox Code Playgroud)

当我在rails 3.0.7上做到这一点时,它很好.

> hash.keys.to_s
 => "key"
> hash[hash.keys.to_s]
 => ["val1", "val2"]
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用rails 3.1.3执行此操作,则不是.

> hash.keys.to_s
 => [\"key\"]
> hash[hash.keys.to_s]
 => nil
Run Code Online (Sandbox Code Playgroud)

这是因为Rails版本改变了吗?是否有任何其他办法把哈希键添加到与两个版本(或与轨道2太)工作的字符串?

ruby-on-rails-3

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

我们不需要再将框架链接到XCode项目了吗?

基于这个问题

为什么iOS框架依赖项不需要显式链接到静态库

我读了选定的答案但仍然不明白所以我做了一个示例项目

Github上的测试项目

在测试项目中,我从主要项目和静态库(包括Foundation.framework和UIKit.framework)中删除Link Binary With LibrariesFile导航的所有框架,基本上,两个项目链接到0框架.

问题是

  • 在静态库中,它包括MapKit/MapKit.h而没有将Mapkit.framework引用到项目中,为什么它仍在工作?
  • 在主项目中,我从项目中删除UIKit.framework和Foundation.framework,为什么它仍然有效?
  • 既然它现在有效,以后会有什么问题吗?

感谢您的评论.

PS通过工作,我的意思是我可以在模拟器上运行,我可以存档主项目,没有任何错误.

编辑25/07/2014

我尝试使用我正在处理的真实应用程序,它是一样的.

  • 我在文件导航中突出显示了Foundation,UIKit,CoreData和另外10个框架,以及所有这些框架.
  • 取消选中Utilities Panel中的目标 - > Target Membership
  • 建立:通过,运行:通过

我的应用程序的每个功能仍然按预期工作.我不懂.

xcode ios

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

应该在MVVM中的Activity/Fragment和ViewModel中做什么

我们公司一直在使用MVP模式开发Android应用程序.使用MVP,我们将所有业务逻辑放在演示者中,然后Activity/Fragment负责在从演示者接收事件回调时查看更新.

现在,我们决定使用Android Databinding尝试MVVM.看来,使用MVVM,我们可以将所有业务逻辑放在ViewModel中(就像MVP中的Presenter一样),并且还可以在一个对象中通知数据模型的任何更改视图.

但是,在我们的脑海中,这提出了一个问题,我们应该由Activity/Fragment处理什么?因为我们采用MVP模式来避免脂肪活动/碎片.我们不希望有苗条活动/片段,然后是胖视图模型.

到目前为止,我们认为我们可以通过Activity/Fragment来处理这些问题

  • 请求/检查权限
  • 访问上下文
  • 访问资源

每个更正,评论或建议都是受欢迎的,因为我对MVVM很新,即使它似乎与MVP类似.

谢谢.

还有一点问题

将MVVM与监听器(如MVP)结合起来是否可能并且是一种好的做法?例如

public class MainActivityViewModel extends BaseObservable {

    MainActivityViewModelListener listener;
    User user;

    public void setMainActivityViewModelListener(MainActivityViewModelListener listener) {
        this.listener = listener;
    }

    public void refreshUser(View v) {
        // some user update via Internet
        notifyPropertyChanged(BR.userAlias);

        if (listener != null) {
            listener.onUserRefreshed(user);
        }
    }

    @Bindable
    public void getUserAlias() {
        return user.getAlias();
    }
}

public interface MainActivityViewModelListener {
    void onUserRefreshed(User user);
}

public class MainActivity implements MainActivityViewModelListener { …
Run Code Online (Sandbox Code Playgroud)

java android mvvm android-databinding

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

FragmentTransaction:replace和addToBackStack不能一起工作?

我是Android开发的新手,现在遇到了奇怪的行为.

  • 我有一个空的FrameLayout作为片段的容器.
  • 如果用户第一次按下按钮,则生成新的片段并放入容器内.
  • 如果用户稍后按下按钮并且容器内存在已存在的片段,则用新生成的片段替换现有片段.
  • 如果用户按下后退按钮,则弹出容器内的片段.

这是我的代码

public void showFragment(View v) {
    FragmentA f = new FragmentA();

    FragmentManager fm = getSupportFragmentManager();
    String tag = f.getFragmentTag(); // instance method of a to get a tag

    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.anim.slide_in_top, 0, 0, R.anim.slide_out_top);            
    ft.replace(R.id.container, f, tag);
    ft.addToBackStack(tag);
    ft.commit();
}

@Override
public void onBackPressed() {
    FragmentManager fm = getSupportFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
    } else {
        super.onBackPressed();
    }
}
Run Code Online (Sandbox Code Playgroud)

当用户第一次按下按钮时,它的行为与我的预期相同,将新片段添加到容器中.但是,第二次用户按下按钮时容器仍然包含一个片段,而不是替换,它在现有的一个上添加新的.所以,容器里面有2个碎片,2个按下去除所有碎片.

我发现如果我删除该行

ft.addToBackStack();
Run Code Online (Sandbox Code Playgroud)

并重做像下面的onBackPress()方法,它像我预期的那样再次工作(一次在容器中有1个片段)

基本上,手动删除片段而不是popFromBackStack方法

private FragmentA currentFragment = null; // …
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmenttransaction

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

获取NameError:尝试分配belongs_to时未初始化的常量

我有两个模型,如下所示:

module MainModule
  module SubModule
    class Home < ActiveRecord::Base
      has_many :rooms
    end
  end
end

module MainModule
  module SubModule
    class Room < ActiveRecord::Base
      belongs_to :home
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作,则会收到错误消息:

> home.rooms << room
=> NameError: uninitialized constant Room
(Failed)
> home.rooms
=>  #<ActiveRecord::Associations::CollectionProxy []> 
(Success)
Run Code Online (Sandbox Code Playgroud)

但是,如果我更新Home模型:

..
has_many :rooms, class_name: "MainModule::SubModule::Room"
..
> home.rooms << room
=> #<MainModule::SubModule::Room id: 1, ...>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我可以获得相关的房间,但不能分配新房间.我在这里想念的是什么?

activerecord ruby-on-rails associations

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

可滚动内容大小歧义与空UIScrollView(XCode 6)

在我的项目中,我在多个视图控制器中有多个空的scrollview(带有AutoLayout的布局).在运行时,视图将添加到基于用户的滚动视图及其所需内容.这在XCode 5中很好,IB编辑器从未显示任何警告.

最近,当我更新到XCode 6以获得访问iOS 8和新的iPhone模拟器.我发现所有那些曾经没有问题的空滚动视图(XCode 5中没有警告)现在显示可滚动内容大小模糊的警告.我检查了我的AutoLayout,似乎没问题.

知道是什么原因造成的吗?

PS但是当我使用模拟器和设备运行时,每件事情似乎都没问题,没有布局问题.

cocoa-touch uiscrollview xcode6

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

在onSaveInstanceState中保存接口(Listener)

SaveInstanceState

对于像Integer,Long,String等其他数据都很好,我只需将它放入包中,并在再次调用onCreateView后将其取回.但我的片段也有听众如下,

public class SomeFragment extends Fragment {
    public interface SomeListener {
        public void onStartDoingSomething(Object whatItIsDoing, Date when);
        public void onDoneDoingTheThing(Object whatItDid, boolean result);
    }

    private SomeFragmentListener listener;
    private String[] args;

    public static SomeFragment getInstance(SomeListener _listener, String... _args) {
        SomeFragment sf = new SomeFragment();
        sf.listener = _listener
        sf.args = _args

        return sf;
    }

    // rest of the class

    // the example of where do I invoke the listener are
    // - onSetVisibilityHint
    // - When AsyncTask is done
    // - …
Run Code Online (Sandbox Code Playgroud)

android activity-lifecycle fragment-lifecycle

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