【问题标题】:Integrating 3rd party Android JAR into Titanium Mobile app?将第 3 方 Android JAR 集成到 Titanium Mobile 应用程序中?
【发布时间】:2011-08-31 11:01:24
【问题描述】:

我正在编写一个尝试播放 YouTube 视频的 Titanium 应用程序。目标是将用户保留在应用程序中,因此调用本地 youtube 应用程序(我已经可以这样做)是不可能的。我有适用于 iOS 的代码,但这只是因为嵌入webView 支持内容。不幸的是,Android 并非如此。

似乎http://code.google.com/p/android-youtube-player/wiki/OpenYouTubePlayerActiviyInstructions 可以解决我的问题,但我不确定如何从 Titanium 中使用它。文档建议从 Android 执行此操作:

Intent lVideoIntent = new Intent(null, Uri.parse("ytpl://"+YOUTUBE_PLAYLIST_ID), this, OpenYouTubeActivity.class);//public Intent (String action, Uri uri, Context packageContext, Class<?> cls) from Android doc
startActivity(lVideoIntent);

因此,利用http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Android.Intent-object.htmlhttp://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Android.Activity-object.html 作为指导,想出了:

var intent = Ti.Android.createIntent({
            action: 'null',
            data: 'ytv://'+vguid,
            packageName: 'com.keyes.youtube',
            className: 'com.keyes.youtube.OpenYouTubeActivity'
        });
        Ti.Android.Activity.startActivity(intent);

在我的 TiApp.XML 中,我添加了这个:

<android xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 
        <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        <activity android:name="com.keyes.youtube.OpenYouTubePlayerActivity"></activity>
    </android>

当我尝试运行代码时,我收到此错误: TypeError:无法调用未定义的方法“startActivity”(文件:///android_asset/Resources/app.js#162) 其中162是startActivity(intent)的行号;

我认为这与源不在类路径上(我尝试只使用他的 .jar 以及单独的 .java 文件)和/或它没有被用作模块有关。我使用了一个 iOS 模块,但不知道如何编写自己的 Android 模块,更不用说将某人的代码移植到模块中了。

有什么帮助吗?我相信这是很多 Titanium 用户都在努力解决的问题。

编辑 1

我在这方面取得了一些进展,但仍然没有解决方案。我已经走了“模块”路线,因为我还没有看到另一种方法来获取项目构建中包含的 jars/java 文件。我将模块构建为“ytModule”,并通过添加

将其包含在内
<module version="0.1">com.keyes.ytModule</module>

到 tiapp.xml。然后我得到 ​​p>

[DEBUG] Looking for Titanium Module id: com.keyes.ytModule, version: 0.1, platform: <any platform>
[DEBUG] module_id = com.keyes.ytModule
[DEBUG] appending module: com.keyes.ytModule.YtplayerModule

当我从 TitaniumStudio 构建时。我正在努力,并将继续发布更新/尝试建议

【问题讨论】:

    标签: android mobile jar android-intent titanium


    【解决方案1】:
    The reason is its not able to call the Activity's method which is
    

    抛出此错误。

     Ti.Android.currentActivity.startActivity(intent)
    

    这应该可行。

    【讨论】:

    • 这是一个开始,但现在 Titanium 认为我尚未在 tiapp.xml 中声明该活动。我几乎可以肯定,这是因为构建 APK 时 java 文件不在类路径中。我该如何添加它们?我不认为我应该为此需要一个模块,但我不知道我还能如何获得路径上的包。
    • 在您的 Titanium SDK 中找到这个 $version/android/modules 并在模块内部添加 jar 并重新编译应用程序。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      相关资源
      最近更新 更多