在已经拆我的应用程序为2个不同的模块(一module和的 application一个),我不得不添加tools:node="replace"的<application>节点,因为我是有清单合并的问题(与Facebook和火力地堡).
自从我这样做以来,一切正常但我的应用程序现在在运行时因此异常而崩溃: The Facebook sdk must be initialized before calling activateApp
但是我正在这样初始化应用程序(在类扩展中Application):
FacebookSdk.setApplicationId(getString(R.string.facebook_app_id));
AppEventsLogger.activateApp(this); // this = instance of Application
Run Code Online (Sandbox Code Playgroud)
我以前什么都没改过,以前它工作得很好,但现在我得到了这个崩溃.我不知道该怎么做......没有发现任何关于这个可以帮助我.
谢谢你的帮助.
编辑:这是相关的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="package"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="package.permissions.C2D_MESSAGE" /> …Run Code Online (Sandbox Code Playgroud) 我愿意在我的应用程序中添加单元和UI测试。
我首先成功配置了单元测试,然后尝试对UI测试进行同样的操作。这是我的Podfile,添加了新的UI Testing Bundle目标后:
platform :ios, '8.0'
use_frameworks!
inhibit_all_warnings!
def shared_pods
pod 'Bolts'
pod 'Branch'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
pod 'GoogleAnalytics'
pod 'GooglePlaces'
pod 'Parse'
pod 'Toast-Swift'
end
target 'MyTarget' do
shared_pods
end
target 'MyTargetUITests' do
shared_pods
end
target 'MyTargetUnitTests' do
shared_pods
end
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行自动创建的MyProjectUITests测试用例时,它仅包含基本设置,甚至没有@testable import MyProject:
import XCTest
class MyProjectUITests: XCTestCase {
override func setUp() {
continueAfterFailure = false
XCUIApplication().launch()
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
正在运行测试...无法加载捆绑包“ MyProjectUITests”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑软件。
(dlopen_preflight(/var/containers/Bundle/Application/5A1FE39F-E675-4A47-9BF4-FBCDB96F5821/MyProjectUITests-Runner.app/PlugIns/MyProjectUITests.xctest/MyProjectUITests):库未加载:@ rpath / libswiftSwiftOnoneSupport.dylib
引用自:/private/var/containers/Bundle/Application/5A1FE39F-E675-4A47-9BF4-FBCDB96F5821/MyProjectUITests-Runner.app/PlugIns/MyProjectUITests.xctest/Frameworks/Toast_Swift.framework/Toast_Swift
原因:找不到图片)
怎么了?谢谢你的帮助。
编辑:作为信息,当我 …
我有不同的目标,因此在我的应用程序中有不同的配置。
每次运行时pod install,最终都会为每个配置产生一个调试和发布警告,告诉我:
无法打开文件“ Pods- {MyTarget} .debug.xcconfig”,因为没有这样的文件。
/ {MyAppPath} / Pods / Pods / Target支持文件/Pods-{MyTarget}/Pods-{MyTarget}.debug.xcconfig
似乎/Pods是在配置路径中添加了两次(来自项目级别的“信息”部分),我不知道为什么:
但是,要解决此问题,我只需要手动选择下面的选项,就可以了:
然后警告消失,我可以再次构建该项目。
是什么导致此问题?
谢谢你的帮助!
我主要是一名学习Android开发和片段的iOS开发人员。我有这个课:
public class MyTableFragment extends ListFragment
{
List<String> dataList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
dataList = new ArrayList<Item>();
dataList.add("Row 1");
dataList.add("Row 2");
dataList.add("Row 3");
dataList.add("Row 4");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(inflater.getContext(),
android.R.layout.simple_list_item_1, dataList);
setListAdapter(adapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id)
{
if(position == 0) {
// What to do here?
// I have a MyNewFragment() class that I want to push
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在基本上 …
我在 scrollView 中有两个文本视图,我想在点击它们时获得它们的 Y 位置。
但是我在调试控制台中尝试了很多东西,总是返回0:
子视图.getY()
subView.getScrollY()
该怎么办?
谢谢你的帮助。
当我计划在我的应用程序中设置 UI 测试,并使用启动参数来模拟一些数据时,我在构建一个简单的测试项目时意识到了一些事情:
在应用程序目标中:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let uiTesting = ProcessInfo.processInfo.arguments.contains("ui-testing")
view.backgroundColor = uiTesting ? .yellow : .white
}
}
Run Code Online (Sandbox Code Playgroud)
在 UI 测试目标中:
class UITestWithLaunchArgumentsProjectUITests: XCTestCase {
override func setUp() {
let app = XCUIApplication()
app.launchArguments.append("ui-testing")
app.launch()
}
func testExample() {
sleep(20)
}
}
Run Code Online (Sandbox Code Playgroud)
多亏了这一点,我意识到,如果我运行,testExample()背景颜色会按预期变成黄色。但是,当我使用记录UI测试工具时,却没有。
有谁知道为什么,以及最终如何在记录 UI 测试时使用启动参数?
感谢您的帮助。