我有一个Android Studio项目,其中我有多个模块,每个模块都取决于共享模块.让我们说这个共享模块有一个xml文件调用sample.xml
当我用Navigate - > Files ...搜索打开文件并输入"sample.xml"时,我会得到
由于生成了build文件夹中的文件,我们不应该编辑它们,因此我没有理由将它们包含在搜索结果中.无论如何我可以排除它们吗?
当我遇到这个问题时,我的第一个想法是搜索Stack Overflow解决方案.我做了搜索,发现了几个主题.但是,与我的问题不同,那些海报从错误中得到了一些线索,例如:
您上传的二进制文件无效.签名无效,或者未使用Apple提交的证书签名
或者这一个:
您上传的二进制文件无效.该文件不是有效的zip文件
或者这个
您上传的二进制文件无效.Info.plist文件中的密钥CFBundleVersion必须包含比以前上载的版本更高的版本.
但对我来说,我什么也没得到,它只是说ERROR ITMS-9000:"你上传的二进制文件无效"

我尝试通过以下尝试解决此问题,所有这些都失败了
我真的不知道我做错了什么.我从iOS 4开始提交应用程序,数百次更新.但从来没有碰到这样的事情.事实上,我刚刚更新了另一个应用程序,它与这个共享相同的代码库,完全没有问题.
有没有办法可以收集有关Xcode告诉我的"无效二进制文件"的更多信息?或者还有什么我应该尝试的吗?
对于每个发现此主题的人(2014年7月18日),也许你的最佳镜头可能是,休息几个小时(或一天),然后再试一次.
- - 最后更新 - -
原来是Apple Server问题
我正在将我的所有项目从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并突出显示文件的依赖项部分,如下所示

似乎当我尝试构建"测试"项目时,它无法找到"核心"项目的所有依赖项.你知道怎么解决这个问题吗?
注意
我认为我包含的目录是正确的,否则,我会得到这个错误
"错误:找不到名称'default'的配置."
(我试图故意放错目录并得到同样的错误)
示例哈希
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太)工作的字符串?
基于这个问题
我读了选定的答案但仍然不明白所以我做了一个示例项目
在测试项目中,我从主要项目和静态库(包括Foundation.framework和UIKit.framework)中删除Link Binary With Libraries和File导航的所有框架,基本上,两个项目链接到0框架.
问题是
感谢您的评论.
PS通过工作,我的意思是我可以在模拟器上运行,我可以存档主项目,没有任何错误.
编辑25/07/2014
我尝试使用我正在处理的真实应用程序,它是一样的.
我的应用程序的每个功能仍然按预期工作.我不懂.
我们公司一直在使用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) 我是Android开发的新手,现在遇到了奇怪的行为.
这是我的代码
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) 我有两个模型,如下所示:
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)
出于某种原因,我可以获得相关的房间,但不能分配新房间.我在这里想念的是什么?
在我的项目中,我在多个视图控制器中有多个空的scrollview(带有AutoLayout的布局).在运行时,视图将添加到基于用户的滚动视图及其所需内容.这在XCode 5中很好,IB编辑器从未显示任何警告.
最近,当我更新到XCode 6以获得访问iOS 8和新的iPhone模拟器.我发现所有那些曾经没有问题的空滚动视图(XCode 5中没有警告)现在显示可滚动内容大小模糊的警告.我检查了我的AutoLayout,似乎没问题.
知道是什么原因造成的吗?
PS但是当我使用模拟器和设备运行时,每件事情似乎都没问题,没有布局问题.
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 ×4
ios ×2
activerecord ×1
associations ×1
cocoa-touch ×1
java ×1
mvvm ×1
uiscrollview ×1
xcode ×1
xcode5 ×1
xcode6 ×1