我创建了一个非常简单的RSS提要阅读器。现在,这是非常基本的。我遇到的一个问题是该应用程序无法在Android上运行,除非它是开发版本。
RSS Feed应该以GUI形式输出Feed。它在Unity Editor和PC构建中实现了这一点。但是,只有当它被设置为开发构建时才适用于Android构建,否则它只显示硬编码为GUI的“RSS阅读器”标签。
没有错误,它不会崩溃或冻结,这真的很奇怪。
我认为问题出在设置时间上。当我进行设置需要更多时间时,即使没有开发构建也能正常工作。但我不确定导致这个问题的实际问题是什么。
以下是相关脚本:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using System.Xml;
public class rsstester : MonoBehaviour
{
public GameObject newsItemObject;
XmlTextReader rssReader;
XmlDocument rssDoc;
string feedUrl = "http://feeds.reuters.com/Reuters/worldNews?format=xml";
void Start() {
rssReader = new XmlTextReader (feedUrl);
rssDoc = new XmlDocument ();
rssDoc.Load (rssReader);
XmlNode rssNode = null;
for (int i = 0; i < rssDoc.ChildNodes.Count; i++) {
XmlNode childNode = rssDoc.ChildNodes [i];
if (childNode.Name == "rss") {
rssNode = childNode;
break;
}
}
XmlNode channelNode = null;
if (rssNode != null) {
for (int i = 0; i < rssNode.ChildNodes.Count; i++) {
XmlNode childNode = rssNode.ChildNodes [i];
if (childNode.Name == "channel") {
channelNode = childNode;
break;
}
}
}
List<XmlNode> newsItems = new List<XmlNode> ();
if (channelNode != null) {
for (int i = 0; i < channelNode.ChildNodes.Count; i++) {
XmlNode childNode = channelNode.ChildNodes [i];
if (childNode.Name == "item") {
newsItems.Add (childNode);
}
}
}
foreach (XmlNode newsItem in newsItems) {
string title = newsItem ["title"].InnerText;
string description = newsItem ["description"].InnerText;
string link = newsItem ["link"].InnerText;
GameObject childObject = Instantiate(newsItemObject) as GameObject;
childObject.transform.SetParent(gameObject.transform, false);
childObject.transform.Find ("Title").gameObject.GetComponent<Text> ().text = title;
childObject.transform.Find ("Title").gameObject.GetComponent<LinkClick> ().link = link;
childObject.transform.Find ("Description").gameObject.GetComponent<Text> ().text = description;
}
}
}
以下是APK:
修改:
资产通常包括AndroidManifest。您确定这与权限无关吗?
它似乎没有任何接近的东西。根本没有.xml
个文件。奇怪的是,当我只从包中导入C#文件时,该应用程序可以运行。
以下是包含脚本的unity package,以下是C#文件:1 2 3 4
编辑#2 :
经过一些试验和错误,我发现了使应用程序运行所需的文件。我不知道这是怎么可能的。
这是:Reporter.cs