从今天开始,当我尝试构建我的Kotlin Android应用程序时,我在Gradle构建中遇到以下错误:
Error:cannot access Baz
bad class file: /Users/me/projects/site/android/app/build/tmp/kapt/debug/classFileStubs/com/company/foo/Bar$Baz.class
bad RuntimeInvisibleParameterAnnotations attribute: Baz(FragmentManager)
Please remove or make sure it appears in the correct subdirectory of the classpath.
Run Code Online (Sandbox Code Playgroud)
它指向一个内部类Baz,它扩展了android.support.v4.app.FragmentStatePagerAdapter.我可以通过注释掉类,以及在外部类中对它的任何引用以及重建来暂时解决错误.错误消失了,但显然该类不再存在,因此其他事情在运行时中断.然后,如果我取消注释并构建,它将适用于一些构建.然后错误回来了.冲洗并重复.我认为关闭Genymotion模拟器可能会触发它.
其他人遇到这个,或有任何想法?
这是违规代码:
class Bar : Fragment() {
@Inject
lateinit var api:ApiRequester
var data : ArrayList<Data> = ArrayList()
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
//[...] view creation code
//[...] data population code
viewPager.adapter = Baz(childFragmentManager)
//[...] more view creation code
}
inner class Baz(fm:FragmentManager) : FragmentStatePagerAdapter(fm) {
override fun …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用OSX上版本1.6.1和Python 2.7.5版本的官方Django教程.我正在开发第2部分,即管理界面.当我尝试进入/ admin/polls/poll /时,我收到以下错误报告:
ImproperlyConfigured at /admin/polls/poll/
This query requires pytz, but it isn't installed.
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/polls/poll/
Django Version: 1.6.1
Exception Type: ImproperlyConfigured
Exception Value:
This query requires pytz, but it isn't installed.
Exception Location: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py in datetime_trunc_sql, line 196
Python Executable: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python Version: 2.7.5
Run Code Online (Sandbox Code Playgroud)
我尝试通过安装pip(需要安装setuptools)安装pytz,但这没有任何区别.此外,我将再次阅读本教程,我知道一个月前我没有遇到过这个问题.可能更新到小牛队造成了一些问题吗?
我可以在我的调试和发布版本中成功构建和运行我的Android应用程序,没有任何问题.然而,当我尝试运行我的新单元测试(之前从未有过它)时,我得到了可怕的DexIndexOverflowException.我怀疑ProGuard
是不是运行我的单元测试,但它是我正常的调试和发布buildTypes.
ProGuard
在单元测试运行配置中运行需要做什么?我搜索了Gradle文档,ProGuard
文档和Android Studio文档来解决这个问题但我一无所获.
我试图让CodePipeline从GitHub获取我的代码并使用CodeBuild构建它.第一个(源)步骤工作正常.但是第二个(Build)步骤在"UPLOAD_ARTIFACTS"部分失败.以下是相关的日志声明:
[Container] 2017/01/12 17:21:31 Assembling file list
[Container] 2017/01/12 17:21:31 Expanding MyApp
[Container] 2017/01/12 17:21:31 Skipping invalid artifact path MyApp
[Container] 2017/01/12 17:21:31 Phase complete: UPLOAD_ARTIFACTS Success: false
[Container] 2017/01/12 17:21:31 Phase context status code: ARTIFACT_ERROR Message: No matching artifact paths found
[Container] 2017/01/12 17:21:31 Runtime error (No matching artifact paths found)
Run Code Online (Sandbox Code Playgroud)
我的应用程序在其根文件夹中有一个buildspec.yml.看起来像:
version: 0.1
phases:
build:
commands:
- echo `$BUILD_COMMAND`
artifacts:
discard-paths: yes
files:
- MyApp
Run Code Online (Sandbox Code Playgroud)
似乎我的buildspec.yml中的"MyApp"应该是不同的东西,但我倾注所有的AWS文档无济于事(还有什么是新的?).如何让它正确上传工件?
我可以通过API Explorer成功向Youtube Analytics API发出请求.我的代码正在尝试使用Google PHP客户端库,特别是Google_Service_YouTubeAnalytics类.不幸的是,这个课程没有文档.
我在客户端上设置ID和断言凭据.我相信这是正常的,因为如果我将私钥更改为我知道不正确的内容,我会得到:
{"code":400,"error":"Error refreshing the OAuth2 token, message: '{\n \"error\" : \"invalid_grant\"\n}'"}
但是当我插入正确的私钥时,我得到以下响应:
{"code":400,"error":"Error calling GET https:\/\/www.googleapis.com\/youtube\/analytics\/v1\/reports?ids=channel%3D%3DCHANNEL_ID&start-date=2014-09-01&end-date=2014-09-05&metrics=views%2Cuniques: (400) Invalid query. Query did not conform to the expectations."}
它没有告诉我什么是关于查询的无效(这将是非常有用的),所以我不知道我可能做错了什么.任何帮助表示赞赏.
这是我发出请求的代码:
$client = new \Google_Client();
$client->setApplicationName(self::APP_NAME);
// set some stuff
$client->setClientId( self::CLIENT_ID );
$client->setClientSecret( self::CLIENT_SECRET );
$client->setAssertionCredentials(new \Google_Auth_AssertionCredentials(
self::CRED_ID,
[
"https://www.googleapis.com/auth/youtube.readonly",
'https://www.googleapis.com/auth/yt-analytics.readonly'
],
self::youtubeKey()
));
$youtubeService = new \Google_Service_YouTubeAnalytics($client);
$resp = $youtubeService->reports->query(
self::CHANNEL_ID,
'2014-09-01',
'2014-09-05',
'views,uniques'
);
Run Code Online (Sandbox Code Playgroud) 这是问题所在:
我在同一个包中有三个文件:com.foobar
这些文件的目录是:
C:.. \在MyLibrary的\ src\COM\foobar的\
然后在里面我有foo.as和bar.as
当我尝试运行mxmlc C:..\mylibrary\src\com\foobar\foo.as时出现错误:
在源路径中找到的文件必须具有与定义的包"com.foobar"相同的包结构.
对此我说:确实如此.包是com.foobar.结构是../com/foobar/foo.as
我在网上发现了一些关于这个错误的其他论坛帖子,看起来用户必须使目录与我已经拥有的包名匹配.我错过了什么?
在此先感谢您提供任何帮助!
我的应用程序具有在Gradle中定义的开发和生产风格.在我的制作风格中,我希望得到的APK文件没有我的x86 jniLibs二进制文件.我只使用它们在genymotion中进行测试,其中一些很大,所以我真的需要空间.
我可以通过手动删除我的src/main/jniLibs/x86文件夹然后构建来实现这一目标的唯一方法,但是每次构建时我都必须这样做,然后在以后恢复库.有没有更简单的方法使用gradle/proguard/something?
根据Google的文档(iOS版Analytics),他们希望您下载一些自动生成的.plist文件来配置您的应用.不幸的是,我有多个报表包(Debug,Release),需要根据构建动态切换.所以我试图做两件事之一:
-要么-
您是如何动态指示您的应用程序发送到不同的报表包,具体取决于您的应用程序是Debug还是Release?
根据官方 Video.js 文档 ( http://docs.videojs.com/docs/guides/setup.html ),您将 js 和 css 的脚本标记添加到页面中。然后,通过 npm 或 Bower 安装包管理器。
为什么你需要这两个?
我认为这是其中之一。所以我尝试只使用 npm 包。我的 React 类如下所示:
import React, { Component } from 'react';
import videojs from 'video.js';
export default class MyVideoContainer extends Component {
constructor(props) {
super(props);
this.state = { };
}
render() {
return <div>
<video id="test_video_1" className="video-js vjs-default-skin" controls preload="auto" width="640" >
<source src="MY_VIDEO.mp4" type="video/mp4" />
<p className="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用伴随对象工厂方法(相当于Java中的静态工厂方法)在Kotlin中创建嵌套的内部类.这是我的代码的简化版本.
class OuterClass {
var myData:List<MyData> = List<>() //gets populated elsewhere
fun getItemFragment(position:Int) : Fragment() {
return InnerClass.Factory.newInstance(position)
}
inner class InnerClass : Fragment() {
companion object Factory {
fun newInstance(position:Int) : InnerClass {
var ic : InnerClass = InnerClass()
var bundle:Bundle = Bundle()
bundle.putInt("index", position)
ic.arguments = bundle
return ic
}
}
override fun onCreateView(inflater:LayoutInflater, container: ViewGroup, savedInstanceState:Bundle): View? {
//create and return view, omitted. Need access to myData
}
}
Run Code Online (Sandbox Code Playgroud)
编译器突出显示"伴侣",说"Modifier伴侣不适用于内部类",它还突出显示了InnerClass()调用,说"表达式是从嵌套类Factory无法访问",使用"inner"关键字使类内部.
如何使用Java中的静态工厂方法实现我在这里尝试做的事情?
当我的事件操作=“ myStart”时,我尝试使用Google Analytics(分析)v4 API来获取事件数。这是我对这个值的reportRequest:
"reportRequests": [
{
"viewId": VIEW_ID,
"dateRanges": [{
"startDate": firstDay.format("YYYY-MM-DD"),
"endDate": lastDay.format("YYYY-MM-DD")
}],
"metrics": [{"expression": "ga:eventValue"}],
"metricFilterClauses": [{
"filters": [{
"metricName": "ga:eventAction",
"operator": "EQUAL",
"comparisonValue": "myStart"
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
我得到的答复是:
code: 400
message: 'Value for field request.metricFilterClauses.filters.comparisonValue = myStart is not valid.'
status: 'INVALID_ARGUMENT'
Run Code Online (Sandbox Code Playgroud)
似乎“ myValue”不是我应该发送的,但是Google Analytics(分析)v4文档太可怕了,没有给出确切的示例或解释该值应该是什么。
如何获取eventAction = myStart事件的数量?
google-analytics google-analytics-api google-analytics-firebase
我有一个 lambda 函数,它只是执行http.get
to http://www.google.com
。如果我没有 VPC 背后的功能,它工作正常。当我把它放在我的 VPC 中时就会出现问题。
我知道您需要设置 Internet 网关。我这样做了。我的两个子网连接到路由0.0.0.0/0
到此 Internet 网关的路由表。这不应该是我需要的全部吗?
无论 Internet 网关的关联如何,该功能仍会挂起。子网的安全组允许所有流量流出0.0.0.0/0"
.
根据授予对 VPC Lambda 函数的 Internet 访问权限,这是我需要做的一切。
编辑:
添加 VPC 组件的完整列表以明确。
据我所知,我已经完成了 AWS 文档链接中的所有工作,为我的 Lambda 提供了互联网访问。然而,当尝试向外部互联网发出请求时,它仍然永远挂起。
android ×3
gradle ×3
kotlin ×2
proguard ×2
amazon-vpc ×1
apache-flex ×1
aws-lambda ×1
django ×1
ios ×1
mxmlc ×1
npm ×1
php ×1
python ×1
pytz ×1
reactjs ×1
unit-testing ×1
video.js ×1
youtube-api ×1